Solr: поиск по нескольким полям, НО ОСТАНОВКА, если найдены совпадения документов - PullRequest
1 голос
/ 26 апреля 2011

Я хочу искать в нескольких полях в Solr.(Я знаю концепцию полей копирования, и я знаю обработчик поиска (e) dismax.)

Итак, у меня есть упорядоченный список полей, я хочу, чтобы термины были найдены.1.) SKU 2.) Имя 3.) Описание 4.) Сводка и т. Д.

Теперь, когда запрос соответствует термину, скажем, в поле SKU, я хочу это совпадение и больше не искатьв последующих полях.

Только, если в первом поле (поле SKU) вообще нет совпадений, следует использовать второе поле (в данном случае «name») и т. д.

Возможно ли это с помощью Solr?Должен ли я реализовать свой собственный обработчик поиска Lucene для этого?

Любой совет приветствуется!

Спасибо, Бернхард

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Я думаю, что ваше дело требует выполнения 4 различных поисков.Если вы внедрили свой собственный SearchHandler, вы можете избежать штрафа за накопление результатов поиска в 4 разных запросах.Это значит, что вы отправите один запрос, а пользовательский SearchHandler выполнит 4 поиска и подготовит один набор результатов.

0 голосов
/ 26 апреля 2011

Если мое предположение верно, вы хотите ранжировать результаты в соответствии с порядком полей. Если это так, то вы можете просто использовать стандартный запрос, как

q = sku: (запрос) ^ 4 ИЛИ имя: (запрос) ^ 3 ИЛИ описание: (запрос) ^ 2 ИЛИ сводка: (запрос)

ранжирует результаты по порядку полей.

Надежда помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...