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

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

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

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

Раздел 0 вернул бы результат 0,345

Раздел 1 вернул бы результат 0,337

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

2.08.2008 09:28:17
3 ОТВЕТА

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

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

19
13.12.2012 23:38:14
Или вы можете построить многопользовательский поиск по всем показателям.
Shashikant Kore 14.10.2009 18:00:59

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

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

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

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

13
20.12.2016 10:38:13

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

8
30.12.2015 18:08:30