Solr: fieldNorm отличается для каждого документа, без увеличения документа

Я хочу, чтобы мои результаты поиска упорядочивались по баллам, что они и делают, но оценка рассчитывается неправильно. Это сказать не обязательнонеправильно, но не так, как ожидалось, и я не уверен, почему. Моя цель - убрать все, что меняет счет.

Если я выполняю поиск, который соответствует двум объектам (где ожидается, что ObjectA будет иметь более высокий балл, чем ObjectB), сначала возвращается ObjectB.

Допустим, для этого примера, что мой запрос состоит из одного термина: «яблоки».

Название объекта А: «яблоки - яблоки» (2/3 условия)
Описание объекта А: «В яблоках-яблоках были яблоки, и теперь яблоки разложили все яблоки по всем яблокам!» (6/18 семестров)
Название ObjectB: «Яблоки - это здорово» (1/3 триместра)
Описание объекта B: "В яблочной комнате были яблоки, и теперь яблоки испортились!" (4/18 семестров)

Поле заголовка не имеет усиления (или, скорее, 1), а поле описания имеет 0,8. Я не указал повышение документа через solrconfig.xml или через запрос, который я прохожу. Если есть другой способ указать ускорение документа, есть вероятность, что я пропущу его.

После анализаexplain распечатка, похоже на ObjectAявляется правильно рассчитать более высокий балл, чем ObjectB, так же, как я хочу, за исключениемодин Разница: заголовок ObjectB fieldNorm всегда выше, чем ObjectA.

Здесь следуетexplain распечатывать. Просто чтобы вы знали: поле заголовкаmditem5_tns и поле описанияmditem7_tns:

ObjectB:
1.3327172 = (MATCH) sum of:
  1.0352166 = (MATCH) max plus 0.1 times others of:
    0.9766194 = (MATCH) weight(mditem5_tns:appl in 0), product of:
      0.53929156 = queryWeight(mditem5_tns:appl), product of:
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.2977981 = queryNorm
      1.8109303 = (MATCH) fieldWeight(mditem5_tns:appl in 0), product of:
        1.0 = tf(termFreq(mditem5_tns:appl)=1)
        1.8109303 = idf(docFreq=3, maxDocs=9)
        1.0 = fieldNorm(field=mditem5_tns, doc=0)
    0.58597165 = (MATCH) weight(mditem7_tns:appl^0.8 in 0), product of:
      0.43143326 = queryWeight(mditem7_tns:appl^0.8), product of:
        0.8 = boost
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.2977981 = queryNorm
      1.3581977 = (MATCH) fieldWeight(mditem7_tns:appl in 0), product of:
        2.0 = tf(termFreq(mditem7_tns:appl)=4)
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.375 = fieldNorm(field=mditem7_tns, doc=0)
  0.2975006 = (MATCH) FunctionQuery(1000.0/(1.0*float(top(rord(lastmodified)))+1000.0)), product of:
    0.999001 = 1000.0/(1.0*float(1)+1000.0)
    1.0 = boost
    0.2977981 = queryNorm

ObjectA:
1.2324848 = (MATCH) sum of:
  0.93498427 = (MATCH) max plus 0.1 times others of:
    0.8632177 = (MATCH) weight(mditem5_tns:appl in 0), product of:
      0.53929156 = queryWeight(mditem5_tns:appl), product of:
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.2977981 = queryNorm
      1.6006513 = (MATCH) fieldWeight(mditem5_tns:appl in 0), product of:
        1.4142135 = tf(termFreq(mditem5_tns:appl)=2)
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.625 = fieldNorm(field=mditem5_tns, doc=0)
    0.7176658 = (MATCH) weight(mditem7_tns:appl^0.8 in 0), product of:
      0.43143326 = queryWeight(mditem7_tns:appl^0.8), product of:
        0.8 = boost
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.2977981 = queryNorm
      1.6634457 = (MATCH) fieldWeight(mditem7_tns:appl in 0), product of:
        2.4494898 = tf(termFreq(mditem7_tns:appl)=6)
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.375 = fieldNorm(field=mditem7_tns, doc=0)
  0.2975006 = (MATCH) FunctionQuery(1000.0/(1.0*float(top(rord(lastmodified)))+1000.0)), product of:
    0.999001 = 1000.0/(1.0*float(1)+1000.0)
    1.0 = boost
    0.2977981 = queryNorm

Ответы на вопрос(2)

Ваш ответ на вопрос