Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Lucene Score results

Tags:

search

lucene

In Lucene if you had multiple indexes that covered only one partition each. Why does the same search on different indexes return results with different scores? The results from different servers match exactly.

i.e. if I searched for :

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

Partition 0 would return a score of 0.345

Partition 1 would return a score of 0.337

Both match exactly on name and DOB.

like image 650
Stephen Hendry Avatar asked Aug 02 '08 09:08

Stephen Hendry


3 Answers

The scoring contains the Inverse Document Frequency(IDF). If the term "John Smith" is in one partition, 0, 100 times and in partition 1, once. The score for searching for John Smith would be higher search in partition 1 as the term is more scarce.

To get round this you would wither have to have your index being over all partitions, or you would need to override the IDF.

like image 144
Stephen Hendry Avatar answered Nov 01 '22 11:11

Stephen Hendry


Because the score is determined on the index if I am not completely mistaken.

If you have different indexes (more/less or different data that was indexed), the score will differ:

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

(Warning: Contains Math :-))

like image 30
Michael Stum Avatar answered Nov 01 '22 12:11

Michael Stum


You may also be interested in the output of the explain() method, and the resulting Explanation object, which will give you an idea of how things are scored the way they are.

like image 42
Joe Shaw Avatar answered Nov 01 '22 12:11

Joe Shaw