Solr общий поиск, как удалить некоторые поля из поиска? - PullRequest
0 голосов
/ 05 июля 2018

Я бы хотел выполнить простой поиск в Solr, например, q = 1234. Я знаю, что он будет искать queryString в каждом поле, настроенном в schema.xml, НО, я хотел бы, чтобы во время выполнения он НЕ выполнял поиск в определенных полях.

Возможно ли это с Solr?

Я не хочу выполнять фильтрацию запросов. Я хочу выполнять поиск во всех настроенных полях, но не в некоторых, в зависимости, например, от прав пользователя.

Большое спасибо за помощь:)

1 Ответ

0 голосов
/ 05 июля 2018

Ваше предположение неверно - q=1234 будет не искать каждое поле. Схема по умолчанию имеет поле с именем _text_ и правило copyField, которое копирует содержимое всех полей в это поле, а затем в поле _text_ выполняется поиск по умолчанию.

Это означает, что до тех пор, пока вы действительно указываете, какие поля вы хотите искать, вы получаете желаемое поведение. С помощью (e) обработчиков dismax вы делаете это, устанавливая qf=field1 field2 field3 с именами полей, которые вы хотите найти.

Вам также следует удалить инструкцию copyField и поле _text_, если только вы не планируете использовать эту функцию.

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