Ответ 1
Фильтр не влияет на вычисление оценки не отфильтрованных документов.
Например, представьте себе следующие документы:
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"
в этом запросе оценка doc 2 выше, чем оценка doc 1 (поскольку loc
вычисляется в баллах документов)
с использованием фильтра:
q=+text:"london" f=+loc:"london"
в этом запросе оценка doc 1 выше, чем у doc 2.
Извините форматирование стиля Solr, но общее понятие понятное.
Другие причины использования фильтров предназначены для кеширования, фильтры кэшируются отдельно от запросов, поэтому, если у вас есть динамический запрос со статической частью, имеет смысл фильтровать статическую часть. Таким образом, обход индекса ограничивается подмножеством фильтрованных документов.