Строка запроса Solr не работает для полнотекстового поиска - PullRequest
0 голосов
/ 03 ноября 2018

Я следую этому руководству о том, как выполнить индексацию образцов документов с использованием Solr. Коллекция по умолчанию "Gettingstarted", как показано. Сейчас я пытаюсь сделать запрос. Показано 52 записи:

enter image description here

Однако, когда я заменяю аргумент q на electronics, он должен вернуть 14 результатов. Однако я ничего не получаю.

Когда я заменяю строку запроса q на cat:electronics, тогда я фактически получаю 14 результатов. Но почему это так? q=word не должен искать word где бы он ни появлялся?

1 Ответ

0 голосов
/ 03 ноября 2018

Нет, это не так. Ваше предположение, что:

разве q = слово не должно искать слово везде, где оно появляется?

неправильно. Если вы используете word в качестве единственного запроса и ничего более - вы ищете word в поле поиска по умолчанию . Он не ищет все доступные поля во всех доступных документах.

Также помните, что анализатор запросов по умолчанию предполагает, что ваш запрос имеет синтаксис Lucene Query . Чтобы обрабатывать более «естественные» запросы, вы можете использовать синтаксический анализатор запросов edismax . Этот анализатор запросов поддерживает параметр qf, который сообщает Solr, какие поля искать, вместо использования синтаксиса cat:electronics. Ваш пример будет тогда q=electronics&qf=cat.

В приведенных вами примерах документов, qf=series_t author name cat, вероятно, является достойным значением для поиска во всех этих полях данного запроса. Вы также можете добавить ^<weight> к имени поля, чтобы удары по различным полям имели различный вес. qf=name^10 cat даст удар в name десятикратном весе удара в поле cat.

...