SOLR многогранный w-запрос

Мне нужно разделить сорл на основе нескольких категорий, точнее, 3 категории. Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно по-другому рассматривать то, что по сути является отдельными запросами, но я пытаюсь определить, могу ли я сделать это с одним. По сути, я хотел бы сделать filter.query, но вместо подсчета я хотел бы получить значения совпадений.

проблема заключается в том, что я сопоставляю несколько полей для одного и того же значения, скажем, field1=*bah* OR field2=*bah* or field3=*bah*, и я рассматриваю поле1, поле2 и поле3

Запрос действительно возвращает те документы, поля которых совпадают, но, на самом деле, для field1 не включает только matchign field1 bah.. но включает документы, которые соответствуют field2 и field3, чье значение field1 не было bah.

id в основном любит использовать fq={!tag} с facet.field{!ex} для создания аспектов field1 только с совпадающими значениями field1, аспекта 2 без значения field2 matchign... и т.д.

Возможно ли это даже с одним запросом в solr?

Вот моя базовая установка

<document>
  <field1>bah boo</field1>
  <field2>bah bing</field2>
  <field3>boo bar</field3>
</document>
<document>
  <field1>bar boo</field1>
  <field2>bah bong</field2>
  <field3>bah bar</field3>
</document>
<document>
  <field1>bar boo</field1>
  <field2>ding bah</field2>
  <field3>bog bar</field3>
</document>
<document>
  <field1>ban bah</field1>
  <field2>ban bing</field2>
  <field3>bbah bar</field3>
</document>

и я хотел бы вернуться

<facets>
   <field1>
     <str>bah boo</str>
     <str>ban bah</str>
   </field1>
   <field2>
     <str>bah bing</str>
     <str>bah bong</str>
     <str>ding bah</str>
   </field2>
   <field3>
     <str>bah bar</str>
     <str>bbah bar</str>
   </field3>
</facets>

person Rulian    schedule 07.03.2012    source источник


Ответы (1)


Если вы включите подсветку вместе с фасетированием, ваши фактические совпадения будут возвращены в структуре highlighting. Однако он не даст вам количество совпадений, а только даст совпадения для строк, возвращаемых вашим запросом. На самом деле, я не уверен, что вам вообще нужно использовать фасетирование для того, что вы пытаетесь сделать здесь.

Я могу ошибаться, но ваш вопрос похож на этот: Как вернуть столбец, соответствующий запросу в Solr..?

Надеюсь это поможет.

person David Faber    schedule 13.03.2012