Понимание Solr Doc =

У меня есть два проиндексированных документа, и я пытаюсь выяснить, почему один выше другого. Итак, я пробежал DebugQuery=True, чтобы получить объяснение. Ниже приведены соответствующие различия в двух документах.

Два разных типа документов

Это может быть актуально; Документы бывают двух разных типов, которые я использую для различения в поле * _s. Итак, в моем поле module_s есть два модуля 1 и 2. В моем запросе есть:

<arr name="filter_queries">
    <str>moduleid_s:(1 OR 2)</str>
</arr>

поэтому я не верю, что это должно вызвать проблему, но я хотел добавить эту информацию.

Соответствующие различия объясняют:

Документ 1 - тип модуля = 1

result of: 1.7325882 = score(doc=3513280,freq=1.0), 
    product of: 0.44456035 = queryWeight, 
    product of: 0.5 = boost 7.7946143 = idf(docFreq=5286,maxDocs=4721423) 0.1140686 = queryNorm 3.8973072 = fieldWeight in 3513280, 
    product of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 7.7946143 = idf(docFreq=5286, maxDocs=4721423) 0.5 = fieldNorm(doc=3513280) 

Документ 2 - тип модуля = 2

result of: 0.75800735 = score(doc=174,freq=1.0), 
        product of: 0.44456035 = queryWeight, 
        product of: 0.5 = boost 7.7946143 = idf(docFreq=5286,maxDocs=4721423) 0.1140686 = queryNorm 1.7050719 = fieldWeight in 174, 
        product of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 7.7946143 = idf(docFreq=5286, maxDocs=4721423) 0.21875 = fieldNorm(doc=174) 

Сводка и вопрос

Как видите, объяснения почти идентичны. У всех них одинаковые queryWeight, boost, idf и queryNorm. Другое дело, что doc = XXX. Для документа 1 это 351328, а для документа 2 - 174. Может кто-нибудь объяснить, что это за номер? Откуда это взялось? А почему другое?

Используемые ресурсы


person Adam    schedule 10.09.2015    source источник


Ответы (1)


Этот номер и есть докид. Он однозначно идентифицирует документ для поиска по индексу. Это не имеет абсолютно никакого отношения к подсчету очков.

Реальная разница в баллах находится в поле Норма:

  • Документ 1: 0.5 = fieldNorm
  • Документ 2: 0.21875 = fieldNorm

FieldNorm рассчитывается на основе двух цифр. Повышение, данное полю при индексировании документа, и длина поля (более точное описание можно найти в разделе norm(t,d) в TFIDFSimilarity docs)

Таким образом, либо это поле короче в Документе 1, либо ему было присвоено более высокое значение в Документе 1 при его индексировании.

person femtoRgon    schedule 10.09.2015