Kính thưa cộng đồng stackoverflow:Xây dựng một đám mây tag với Solr
Với một số văn bản, tôi muốn để có được TOP 50 từ thường gặp nhất trong các văn bản, và tạo ra một đám mây thẻ ra khỏi nó, và do đó hiển thị các ý chính của những gì văn bản là về một cách đồ họa.
Văn bản thực sự là một tập hợp gồm 100 nhận xét PER mỗi ITEM (ảnh) có khoảng 120 mục và tôi cũng muốn giữ cho đám mây được cập nhật - bằng cách giữ các nhận xét được lập chỉ mục và sử dụng đám mây mã thế hệ để chạy mỗi lần yêu cầu web mới xuất hiện.
Tôi định cư bằng cách sử dụng Solr để lập chỉ mục văn bản, và bây giờ tự hỏi làm thế nào để có được 50 từ TOP, trong số Solr TermsVectorComponant. Dưới đây là một ví dụ về các kết quả trả về bởi các componant về vector, sau khi bạn bật tần số hạn bằng cách nói tv.tf="true"
:
<lst name="doc-5">
<str name="uniqueKey">MA147LL/A</str>
<lst name="includes">
<lst name="cabl"><tf>5</tf></lst>
<lst name="earbud"><tf>3</tf></lst>
<lst name="headphon"><tf>10</tf></lst>
<lst name="usb"><tf>11</tf></lst>
</lst>
</lst>
<lst name="doc-9">
<str name="uniqueKey">3007WFP</str>
<lst name="includes">
<lst name="cabl"><tf>5</tf></lst>
<lst name="usb"><tf>4</tf></lst>
</lst>
</lst>
Như bạn thấy tôi có 2 vấn đề:
- tôi nhận được tất cả các các thuật ngữ trong tài liệu, cho trường đó, không chỉ trên đầu trang
- Và chúng không được sắp xếp theo tần suất, vì vậy tôi phải nhận các điều khoản và sắp xếp nó trong bộ nhớ để làm những gì đang cố gắng.
Có cách nào tốt hơn không? (hoặc) Tôi có thể nói cho thành phần termrector solr bằng cách nào đó sắp xếp nó và nhận chỉ 100 cho tôi? (hoặc) Có một số khung công tác khác mà tôi có thể sử dụng không? Tôi cần phải giữ cho các bình luận mới được lập chỉ mục khi chúng đến, vì vậy đám mây từ khóa luôn luôn tăng trưởng - Khi máy phát điện toán đám mây, nó cần một từ điển các từ có trọng số và làm cho nó trở thành một hình ảnh đẹp.
This câu trả lời không hữu ích.
EDIT - thử jpountz & paige đầu bếp của câu trả lời
Đây là một kết quả mà tôi nhận được cho truy vấn này:
select?q=Id:d4439543-afd4-42fb-978a-b72eab0c07f9&facet=true
&facet.field=Post_Content&facet.minCount=1&facet.limit=50
<int name="also">1</int>
<int name="ani">1</int>
<int name="anoth">1</int>
<int name="atleast">1</int>
<int name="base">1</int>
<int name="bcd">1</int>
<int name="becaus">1</int>
<int name="better">1</int>
<int name="bigger">1</int>
<int name="bio">1</int>
<int name="boot">1</int>
<int name="bootabl">1</int>
<int name="bootload">1</int>
<int name="bootscreen">1</int>
tôi có 50 yếu tố như vậy, @jpountz nhờ giúp giới hạn các kết quả, NHƯNG tại sao TẤT CẢ TRẢ LƯỢNG của các thành phần riêng lẻ <int>
giữ giá trị ? Suy nghĩ của tôi là: Số 1 thể hiện số lượng tài liệu phù hợp với truy vấn của tôi (chỉ có thể là tài liệu do tôi truy vấn theo Id: Guid) và không đại diện cho tần suất của các từ trong Post_Content
Để chứng minh điều này tôi loại bỏ các Id: GUID từ truy vấn và kết quả là:
<int name="content">33</int>
<int name="can">17</int>
<int name="on">16</int>
<int name="so">16</int>
<int name="some">16</int>
<int name="all">15</int>
<int name="i">15</int>
<int name="do">14</int>
<int name="have">14</int>
<int name="my">14</int>
vấn đề của tôi là làm thế nào để có được tần số hạn trong tài liệu, và không phải là tần số tài liệu của nhiều thuật ngữ. Ví dụ tôi biết một thực tế rằng khả năng khởi động là một từ tôi đã sử dụng 6 lần trong Post_content, Vì vậy, tôi muốn sắp xếp các cặp như (6, "khả năng khởi động"), (5, "đĩa") cho một tập hợp các tài liệu.
Cụ thể là Truy vấn chức năng mà chúng tôi có thể sử dụng cho mục đích này? – Zasz
Các yếu tố xuất hiện trong các kết quả khía cạnh. –
Zasz