каково максимальное значение люценовой оценки? - PullRequest
4 голосов
/ 19 января 2012

Я думаю о функции оценки по умолчанию, для которой был использован StandardAnalyzer.

Кажется, значение иногда выше 1,0.

Ответы [ 3 ]

8 голосов
/ 19 января 2012

На самом деле нет максимального балла.

Когда Lucene делает свою оценку, он в основном суммирует набор баллов вместе, чтобы получить общую оценку.

Например:

Предположим, я ищу A OR B. Этот запрос разбит на составные части - A и B. Каждая часть этого запроса ищется независимо, используя суббалансира и получает оценку для соответствующей части запроса. Если документ содержит как A, так и B, оценка будет представлять собой комбинацию оценок обоих суб-оценщиков.

Поскольку может быть много подчиненных, общий балл может быть больше 1.

Оценка конкретного попадания является абсолютной, что означает, что она может использоваться только в качестве сравнения с самой высокой оценкой из того же поиска. Результаты разных поисков не сопоставимы напрямую.

Если вам действительно нужно значение от 0 до 1, вы можете нормализовать каждую оценку на основе отношения ее значения к наибольшей оценке в результате поиска. Это даст вам эквивалент процентного балла. Эти проценты по-прежнему нельзя сравнивать между поисками.

Более подробную информацию можно найти здесь и здесь .

5 голосов
/ 19 января 2012

Максимальное значение оценки зависит от выполняемого запроса.Чтобы узнать, какова максимальная оценка для данного запроса, вы можете запросить оценка поле через fl параметр, его нужно явно запросить.

Ex Req: http://server:7983/solr/select/?q=term&fl=*,score

lookдля maxScore = "xx.xxxx" в вашем ответе, и это будет выше / ниже 1,0, в зависимости от запроса, результатов, релевантности ...

Ex: <result name="response" numFound="29" start="0" maxScore="2.1740298">

Что важно помнить о значении самой оценкине имеет большого значения, но при сравнении относительной оценки документа с maxScore в запросе он дает значение.Например, если оценка документа № 1 равна 1,9, а оценки документа № 27 - 0,8, то документ № 1 намного лучше, чем документ № 27, если maxScore равен «2,1740298».

Следующие факторы влияютскоринг,

  • Обратная частота документа
  • Термин Частота
  • Коэффициент координации
  • Длина поля

помимо этой функцииНапример,

  • Повышение индекса по времени
  • Повышение времени запроса

будет влиять на вычисление оценки. SolrRelevancy предлагает некоторые объяснения.Более подробное объяснение можно найти здесь Схожесть с Lucene Вы можете включить опцию отладки, чтобы увидеть, как вычисляется оценка,

http://server:7983/solr/select/?q=term&fl=*,score&debugQuery=on

Пример: 2.1740298 = fieldWeight (text: "mmdci bldleg 02" в 210), произведение: 1.7320508 = tf (фразаFreq = 3.0) 13.388552 = idf (текст: mmdci = 812 bldleg = 264 02 = 6220) 0.09375 = fieldNorm (field = text, doc = 210)

Для Lucene:

Использование TopDocs.getMaxScore () .Возвращает максимальный балл всех совпадений при сортировке по умолчанию по релевантности.Если вы сортируете по полям, отличным от релевантности, вам нужно установить doTrackScores (true) & doMaxScore (true) .

1 голос
/ 19 января 2012

Вот страница, описывающая, как подсчитываются оценки в Lucene:

http://lucene.apache.org/java/3_0_0/scoring.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...