Несколько словосочетаний на Solr - PullRequest
11 голосов
/ 27 февраля 2012
  • Я использую Solr 3.3.0, работая из коробки, используя пример папка
  • solrQueryParser defaultOperator = "ИЛИ"

Моя проблема в том, что Solr, похоже, не дает хороших результатов, когда я ищу фразу из нескольких слов.

Следующий поиск не дал результатов.

  1. http://localhost:8080/solr/select/?q=roof+fixing

Однако, когда я ищу roof или fixing , они оба дают несколько хороших результатов.

  1. http://localhost:8080/solr/select/?q=roof возвращает 4 результата
  2. http://localhost:8080/solr/select/?q=fixing возвращает 3 результата

По запросу "крепление крыши" я ожидаю, что solr выдаст 7 результатов. 4 записи для крыши и 3 записи для крепления .

Требуется ли какая-либо специальная конфигурация для этого?

Ответы [ 2 ]

9 голосов
/ 27 февраля 2012

Вы только что неправильно сформулировали свой запрос.

Попробуйте выполнить следующий запрос на странице администратора:

(крепление крыши или ИЛИ)

Или, если вы хотите найти это в определенном поле:

fieldname: (кровля ИЛИ крепление)

Когда вы задаете SOLR запрос типа «крепление крыши», вы фактически запрашиваете все документы, у которых есть «крыша» И «крепление» в поле по умолчанию (или dismax по умолчанию)набор полей. Единственный способ изменить значение - это переписать запрос, который вводят ваши пользователи. Это то, что мы делаем, но в большем масштабе. У нас есть интерфейс интерфейса, который предоставляет целую кучу опций и генерирует SOLRзапрос от него. Люди могут ввести поисковый термин в определенном поле, и если есть более одного слова, и это не в кавычках, мы добавляем И. Затем мы ИЛИ вместе все поля, которые заполнены. Некоторые поля являются специальными иесть версия MIN и MAX, которую мы превращаем в запрос диапазона :[0 TO 125000]. И есть некоторые выпадающие списки, которые поддерживают множественные выборы, которые мы также превращаем в ИЛИ, например State:("WA" OR "CA" OR "OR" OR "NV")

0 голосов
/ 27 февраля 2012

Solr не обязательно будет возвращать 7 результатов для "установки крыши ИЛИ", поскольку один результат может включать и"крыши" и "крепления".Предположим, что «крыша» имеет 3 результата, «крепление» - 4, но «крыша» и «крепление» появляются в 2 результатах.Вы получите только 5 результатов в поиске «ИЛИ крепления крыши», так как Solr не будет возвращать повторяющиеся результаты.

Вы пробовали использовать пространство с кодировкой URL («% 20») вместо «+»знак?Если оператор по умолчанию - ИЛИ, вам не нужно включать этот оператор.

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