Результаты оценки Lucene

В Lucene, если у вас есть несколько индексов, которые охватывают только один раздел. Почему один и тот же поиск по разным индексам возвращает результаты с разными оценками? Результаты с разных серверов точно совпадают.

то есть. если я искал:

  • Имя - Джон Смит
  • DOB - 11/11/1934

Раздел 0 вернет оценку 0.345

Раздел 1 вернет оценку 0.337

Оба соответствуют точно по имени и DOB.

Ответ 1

scoring содержит частоту обратных документов (IDF). Если термин "Джон Смит" находится в одном разделе, 0, 100 раз и в разделе 1, один раз. Оценка для поиска Джона Смита была бы более высоким поиском в разделе 1, поскольку этот термин более скуден.

Чтобы обойти это, вы бы увядали, чтобы ваш индекс находился над всеми разделами, или вам нужно переопределить IDF.

Ответ 2

Потому что оценка определяется по индексу, если я не ошибаюсь.

Если у вас разные индексы (больше/меньше или разные данные, которые были проиндексированы), оценка будет отличаться:

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

(Предупреждение: содержит математику: -))

Ответ 3

Вы также можете быть заинтересованы в выходе explain() method, а в результате Explanation object, который даст вам представление о том, как вещи оцениваются так, как они есть.