2008-08-02 8 views
36

En Lucene, si tenía varios índices que cubrían solo una partición cada uno. ¿Por qué la misma búsqueda en diferentes índices arroja resultados con puntajes diferentes? Los resultados de diferentes servidores coinciden exactamente.Lucene Score results

es decir, si han buscado:

  • Nombre - John Smith
  • DOB - 11/11/1934

partición 0 se obtendrá una puntuación de 0,345

Partición 1 devolvería una puntuación de 0.337

Ambos coinciden exactamente con el nombre y la fecha de nacimiento.

Respuesta

18

El scoring contiene la frecuencia de documentos inversa (IDF). Si el término "John Smith" está en una partición, 0, 100 veces y en la partición 1, una vez. El puntaje para buscar a John Smith sería una búsqueda más alta en la partición 1 ya que el término es más escaso.

Para evitar esto le marchitan tiene que tener su índice es sobre todas las particiones, o que tendría que anular el FDI.

+1

O podría construir un multisearcher de todos los índices. –

13

Debido a que la puntuación se determina en el índice si no estoy completamente equivocado.

Si tiene diferentes índices (más menos o diferentes de datos/que fue indexada), la puntuación será diferente:

http://lucene.apache.org/core/3_6_0/scoring.html

(Advertencia: Contiene Matemáticas :-))

+2

enlace actualizado: http://lucene.apache.org/java/2_4_0/scoring.html –

7

Usted puede que le interesen también la salida del explain() method y el Explanation object resultante, el cual le dará una idea de cómo las cosas se califican como son.