Создание облака тегов с SOLR

Уважаемый сообщество Stackoverflow:

Учитывая какой-нибудь текст, я хочу получить лучшие 50 наиболее частых слов в тексте и создать облако тегов, и, таким образом, показать Гист того, что текст в графическом виде.

Текст на самом деле является набором 100 или около того комментариев на каждый элемент (картинка), есть около 120 элементов, и я также хочу держать облако обновленного - поддержание проиндексированных комментариев и Используя код поколения облака для запуска каждый раз, когда появляется новый веб-запрос.

Я поселился на использовании SOLR, чтобы индексировать текст, и теперь удивляюсь, как получить 50 слов, из SOLR TevervectorComponant . Вот пример результатов, возвращаемых условиями векторного компонента, после того, как вы включаете термин частоту, говоря TV.TF = «True» :

  
    MA147LL/A    
    
      5
      3
      10
      11
    
  

  
    3007WFP
    
      5
      4
    
  

, как вы можете видеть, у меня есть 2 проблемы:

  1. Я получаю все термины в документе, для этого поля, не только топ-100
  2. , и они не отсортированы по частоте, поэтому я должен получить условия и сортировать его в память, чтобы делать то, что я пытаюсь.

Есть ли лучший способ? (или) Могу ли я сказать компонент Solr TermVector как-то сортировать его и забрать только 100 для меня? (или) Есть ли другие рамки, которые я могу использовать? Мне нужно держать новые комментарии, проиндексированные, так как они приходят, поэтому облако тегов всегда активирована - как к облачному генерату, он принимает словарь взвешенных слов и делает его в приятное изображение.

Это ответ не помогает.

Редактировать - пробовать ответ JPountz & Paige Cook

Вот результат, который я получил для этого запроса:

    select?q=Id:d4439543-afd4-42fb-978a-b72eab0c07f9&facet=true
&facet.field=Post_Content&facet.minCount=1&facet.limit=50

1
1
1
1
1
1
1
1
1
1
1
1
1
1

Я получил 50 таких элементов, @jpountz спасибо, что помогли ограничить результаты, но почему все пятьдесят Индивидуальный Удерживайте значение 1 ? Мои мысли: номер 1 представляет количество документов, соответствующих моему запросу (которое может быть только так, как я запрошал ID: GUID), и они не представляют частоту слов в Post_content

, чтобы доказать Это сняло ID: GUID из запроса и результат был:

33
17
16
16
16
15
15
14
14
14

Моя проблема заключается в том, как получить термин частоту в документе, а не частоту документа многих терминов. Например, я знаю, что загрузка было словом, которое я использовал 6 раз в Post_content, поэтому я хочу отсортированные пары, как (6, «загрузочные»), (5, «диск») для набора документов.

6
задан Community 23 May 2017 в 11:59
поделиться