Apache SOLR поиск по категориям - PullRequest
1 голос
/ 18 апреля 2011

Я использую apache-solr-1.4.1 и jdk1.6.0_14.

У меня есть следующий сценарий. У меня есть 3 категории данных, проиндексированных в СОЛР, т.е. ГОРОДА, ГОСУДАРСТВА, СТРАНЫ. Когда я запрашиваю данные из SOLR, мне нужен результат поиска из SOLR на основе следующих критериев:

В одном запросе к SOLR мне нужны данные, извлеченные из SOLR, сгруппированные по каждой категории с заранее определенным количеством результатов для каждой категории.

Как мне указать это условие в SOLR?

Я пытался использовать функцию SOLR Field Collapsing, но мне не удалось получить желаемый вывод из SOLR.

Пожалуйста, предложите.

1 Ответ

4 голосов
/ 18 апреля 2011

Мое решение не совсем то, что вы просили, а мое мнение о том, что SOLR делает лучше всего, а именно полнотекстовый поиск. Вместо того чтобы группировать результаты по «категориям», я бы предложил упорядочить результаты по значению релевантности, а также указать количество аспектов для значений категории. По моему опыту, пользователи ожидают, что «поиск» будет вести себя как Google, с лучшими совпадениями в верхней части. Отклонение от этой нормы в большинстве случаев смущает пользователя.

Если вы хотите в точности так, как вы просили (фактические результаты сгруппированы по категориям), вы можете использовать реляционную базу данных и выполнить group_by или написать пользовательский запрос функции с SOLR (я не могу посоветовать это как Я никогда этого не делал).

Дополнительная информация: индексировать данные в соответствующие поля, например, имя, население и т. д. Но также добавьте поле под названием «категория», которое будет иметь значение ГОРОДЫ, ГОСУДАРСТВА или СТРАНЫ. Затем выполните стандартный поиск SOLR, который будет возвращать результаты в порядке релевантности, то есть лучшие совпадения в верхней части. В качестве части запроса вы можете указать facet.field=category, который будет возвращать счет для результатов поиска для каждой из указанных категорий (в разделе результатов «фасет»). В пользовательском интерфейсе вы можете создавать ссылки для каждого фасета категории, который выполняет первоначальный поиск, плюс &fq=category:CITIES и т. Д., Ограничивая результаты только этой категорией. См. обзор фасетирования в вики SOLR для получения дополнительной информации.

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