Domanda
In Lucene se avessi più indici che coprivano solo una partizione ciascuno.Perché la stessa ricerca su indici diversi restituisce risultati con punteggi diversi?I risultati di diversi server corrispondono esattamente.
cioè.se cercassi:
- Nome: John Smith
- Data di nascita: 11/11/1934
Partizione 0 restituirebbe un punteggio di 0,345
Partizione 1 restituirebbe un punteggio di 0,337
Entrambi corrispondono esattamente al nome e alla data di nascita.
Nessuna soluzione corretta
Altri suggerimenti
IL punteggio contiene la frequenza inversa del documento (IDF).Se il termine "John Smith" è in una partizione, 0, 100 volte e nella partizione 1, una volta.Il punteggio per la ricerca di John Smith sarebbe più alto nella partizione 1 poiché il termine è più scarso.
Per aggirare questo problema dovresti avere l'indice su tutte le partizioni, oppure dovresti sovrascrivere l'IDF.
Perché il punteggio si determina sull'indice se non sbaglio del tutto.
Se disponi di indici diversi (più/meno o dati diversi indicizzati), il punteggio sarà diverso:
http://lucene.apache.org/core/3_6_0/scoring.html
(Avvertimento:Contiene matematica :-))
Potresti anche essere interessato all'output di explain()
metodo, e il risultante Explanation
oggetto, che ti darà un'idea di come vengono valutate le cose nel modo in cui sono.