2012-01-26 6 views
0

Я индексирую комментарии пользователей, связанные с сущностью по идентификатору объекта. Пример комментарии схемы:Поиск по SOLR связанным фразам

<fields> 
    <field name="entity_id" type="sint" indexed="true" stored="true" default=0/> 
    <field name="comment_id" type="sint" indexed="true" stored="true" default=0/> 
    <field name="comment_text" type="text" indexed="true" stored="true" default=""/> 
</fields> 

Теперь я хочу, чтобы иметь возможность запросить все комментарии для конкретного объекта, и получить фразы, которые повторяются несколько раз в наборе комментариев.

Пример комментариев:

  • Это отличное место
  • Вы должны действительно посетить XYZ. Great место до пчелы.
  • Если вы хотите провести потрясающие моменты, это место для пчел.
  • Великие люди и отличное место.

Как вы можете видеть в приведенном выше примере, Отличное место повторяется несколько раз, а также, место пчелы. Мне нужны эти фразы, возвращенные из SOLR, и я пытался использовать SOLR Facets, но мне удалось получить только слова, а не фразы (Building a tag cloud with solr).

запросов Я пытался с был вроде этого:

http://localhost:8984/solr/select/?qt=tvrh&q=entity_id:12345&start=0&rows=0&facet=true&facet.field=comment_text&facet.minCount=1&facet.limit=50 

Результаты были ...

<lst name="facet_counts"> 
    <lst name="facet_queries"/> 
    <lst name="facet_fields"> 
    <lst name="comment_text"> 
    <int name="epic">22</int> 
    <int name="bar">18</int> 
    <int name="you">16</int> 
    <int name="quiver">15</int> 
    <int name="happi">14</int> 
    <int name="your">14</int> 
    <int name="hour">13</int> 
    <int name="drink">12</int> 
    <int name="come">11</int> 
    <int name="get">11</int> 
    <int name="free">9</int> ... 

Примечание: эти результаты не связаны с примерами комментариев, отправленных ранее :).

Спасибо.

ответ

1

Вы посмотрели на использование ShingleFilterFactory? С помощью этого фильтра вы можете комбинировать токены с фразами для индексирования. Вы можете создать поле, которое является только копией comment_text, использовать этот фильтр в поле, а затем получить грани из этого поля

+0

Отличная идея, я обязательно попробую :) – jMn

+0

Теперь у меня проблема при попытке поиска комментариев для другого объекта, у меня есть результаты предыдущих поисков ?! Можно ли как-то удалить его и сохранить только с комментариями, связанными с сущностью? – jMn

+0

Я не совсем понимаю, что вы имеете в виду, можете ли вы привести несколько примеров. Вы используете запрос фильтра, чтобы убедиться, что вы только возвращаете соответствующие данные? –

Смежные вопросы