У меня была такая же проблема с новой настройкой Solr 8. Принятый ответ больше недействителен, поскольку конфигурация <defaultSearchField>
будет устарела< /а>.
Поскольку я не нашел ответа на вопрос, почему Solr не возвращает результаты из каких-либо полей, несмотря на то, что он проиндексирован, я обратился к документации запроса. Я нашел парсер запросов DisMax:
Анализатор запросов DisMax предназначен для обработки простых фраз (без сложного синтаксиса), вводимых пользователями, и для поиска отдельных терминов в нескольких полях с использованием различных весовых коэффициентов (повышений) в зависимости от значимости каждого поля. Дополнительные параметры позволяют пользователям влиять на оценку на основе правил, специфичных для каждого варианта использования (независимо от пользовательского ввода).
Напротив, синтаксический анализатор Lucene по умолчанию говорит только о поиске одного поля. Так что я попробовал DisMax, и он сработал очень хорошо!
Пример запроса:
http://localhost:8983/solr/techproducts/select?defType=dismax&q=video
Вы также можете указать, в каких именно полях искать, чтобы предотвратить нежелательные побочные эффекты. Несколько полей разделены пробелами, которые переводятся как +
в URL-адресах:
http://localhost:8983/solr/techproducts/select?defType=dismax&q=video&qf=features+text
И последнее, но не менее важное: присвойте полям вес:
http://localhost:8983/solr/techproducts/select?defType=dismax&q=video&qf=features^20.0+text^0.3
Если вы используете pysolr, как я, вы можете добавить эти параметры в свой поисковый запрос следующим образом:
results = solr.search('search term', **{
'defType': 'dismax',
'qf': 'features text'
})
person
Kevin Woblick
schedule
29.05.2020
text
. Смотрите мой обновленный ответ. - person Mauricio Scheffer   schedule 16.08.2010