Результаты Lucene Score

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

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

  • Имя - Джон Смит
  • Дата рождения - 11.11.1934 г.

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

Раздел 1 вернет оценку 0,337.

Оба точно совпадают по имени и дате рождения.

Ответов (3)

Скоринг содержит Частоту Обратного документа (IDF). Если термин «Джон Смит» встречается в одном разделе, 0 - 100 раз, а в разделе 1 - один раз. Оценка поиска Джона Смита будет выше при поиске в разделе 1, так как термин более редкий.

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

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

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

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

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

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