Фильтр не влияет на вычисление оценки нефильтрованных документов.
Например, представьте следующие документы:
1.
loc: "uk", "london"
text: "i live in london, "london is the best"
2.
loc: "london avenue", "london street", "london"
text: "I like the shop in london st."
Теперь предположим, что вы делаете следующий запрос:
q=+loc:"london" +text:"london"
в этом запросе оценка документа 2 выше, чем оценки документа 1 (поскольку в документе оценивается loc
)
с использованием фильтра:
q=+text:"london" f=+loc:"london"
в этом запросе оценка документа 1 выше, чем у документа 2.
Извините за форматирование в стиле Solr, но общее представление ясно.
Другие причины использования фильтров для целей кэширования: фильтры кэшируются отдельно от запросов, поэтому если у вас динамический запрос со статической частью, имеет смысл фильтровать по статической части. Таким образом, обход индекса ограничен подмножеством отфильтрованных документов.