El filtro no afecta el cálculo de la puntuación de los documentos no filtrados.
Por ejemplo imaginar los siguientes documentos:
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."
ahora digamos que lo hace la siguiente consulta:
q=+loc:"london" +text:"london"
en esta consulta la puntuación del documento 2 es mayor que la del documento 1 (porque loc
se calcula en la puntuación de documentos)
usando un filtro:
q=+text:"london" f=+loc:"london"
en esta consulta la puntuación del documento 1 es mayor que la del doc 2.
excusa el formato de estilo Solr pero la idea general es clara.
Otras razones para el uso de filtros son con fines de almacenamiento en caché, los filtros se almacenan en caché por separado de consultas por lo que si usted tiene una consulta dinámica con una parte estática que tendría sentido para filtrar por la parte estática. De esta forma, el recorrido del índice está limitado al subconjunto de documentos filtrados.
Aunque lo que dices es correcto en principio, los filtros también se pueden pasar a los buscadores pero funcionan por separado para las consultas – Khash
@ Khash No estoy seguro de lo que quieres decir. Si está diciendo que las instancias de 'Filter' se pueden pasar a' Searcher' (o ahora simplemente 'IndexSearcher'), eso es cierto, pero solo junto con' Query' o algún otro criterio de búsqueda. Ellos no trabajan solos. – erickson