SOLR-фильтр-запрос по основному запросу

Документы SOLR, укажите, что запросы фильтра, в отличие от основного запроса , не влияют на оценку документа, Может ли кто-нибудь объяснить, что это значит точно, предпочтительно с примером.

Спасибо.

Ответ 1

Фильтрующий_Query ТОЛЬКО хранит IDS документа. Это делает очень быстрым применение фильтра для включения/исключения документов. Хорошими примерами этого являются фильтрация продуктов из поиска на основе страны, типа продукта, доступности и т.д.

Обычный запрос может выполнять ту же самую функцию, но он имеет очень сложную систему подсчета очков, чтобы определить "релевантность". Я считаю, что документация указывает, что подсчет очков производится только в основном запросе, а не в фильтре. Это также должно увеличить скорость запроса.

Итак, я могу запросить для:

description:Kohler AND productType:Toilet

Или я могу запросить для:

description:Kohler
with a FQ of productType:Toilet

Результаты будут одинаковыми, но оценки будут разными. Кроме того, если вы получаете много разных запросов в течение дня, которые для productType:Toilet, FilterQuery будет кэшироваться, что ускорит общее время запроса.

Ответ 2

fq предназначен для фиксированного списка значений. Если вы выполните поиск по q = sunroof + stereo и fq = Mustang solr выполнит текстовый анализ по параметру q, так как q = sunroof + stereo и q = stereo + sunroof вернет тот же набор результатов. Но при фильтрации поиска по fq нет никакого анализа, применяемого к параметру fq, и он предположил, что все возвращенные документы будут соответствовать fq, поэтому нет необходимости в том, чтобы он изменял оценку соответствующих документов.