Il filtro non influisce sul calcolo del punteggio dei documenti non filtrati.
Per esempio immaginare i seguenti documenti:
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."
ora diciamo che si fa la seguente query:
q=+loc:"london" +text:"london"
in questa query il punteggio di doc 2 è superiore a quella del doc 1 (perché loc
è calcolato nel punteggio documento)
utilizzando un filtro:
q=+text:"london" f=+loc:"london"
in questa query il punteggio di documento 1 è superiore a quello del documento 2.
Excuse la formattazione dello stile Solr ma l'idea generale è chiaro.
Altri motivi per l'utilizzo dei filtri sono a scopo di memorizzazione nella cache, i filtri vengono memorizzati nella cache separatamente dalle query, quindi se si dispone di una query dinamica con una parte statica, sarebbe opportuno filtrare in base alla parte statica. In questo modo l'attraversamento dell'indice è limitato al sottoinsieme di documenti filtrati.
Anche se quello che stai dicendo è corretto in linea di massima, i filtri possono essere passati anche agli utenti ma lavorano separatamente alle query – Khash
@Khash Non sono sicuro di cosa intendi. Se stai dicendo che le istanze 'Filter' possono essere passate a un' Searcher' (o ora solo 'IndexSearcher'), questo è vero, ma solo insieme a una 'Query' o qualche altro criterio di ricerca. Non lavorano da soli. – erickson