Многократное усиление каждого соответствующего значения в одном поле - PullRequest
0 голосов
/ 11 июня 2018

У меня есть одно множественное поле со следующими значениями:

"itm_field_skills":[1, 2]

Теперь у меня есть следующий запрос:

q=itm_field_skills:(1+OR+2)^5

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

1 Ответ

0 голосов
/ 11 июня 2018

Абсолютные значения баллов - это не то, на что вы можете положиться.Ваш запрос не означает, что ваш счет будет 5 или 10 - просто эти термины в пять / десять раз важнее, чем другие части вашего запроса.

Если вы посмотрите на выходные данные debugQuery, вы увидите, что boost (5) применяется к каждому термину отдельно, а затем результаты для этих терминов суммируются вместе.

4.8168015 = sum of:
  1.2343608 = weight(..) [SchemaSimilarity], result of:
    1.2343608 = score(doc=0,freq=1.0 = termFreq=1.0
), product of:
      5.0 = boost <----
      0.3254224 = idf, computed as log(1 + (docCount - docFreq + 0.5) / (docFreq + 0.5)) from:
        6.0 = docFreq
        8.0 = docCount
      0.7586207 = tfNorm, computed as (freq * (k1 + 1)) / (freq + k1 * (1 - b + b * fieldLength / avgFieldLength)) from:
        1.0 = termFreq=1.0
        1.2 = parameter k1
        0.75 = parameter b
        1.125 = avgFieldLength
        2.0 = fieldLength
  3.5824406 = weight(..) [SchemaSimilarity], result of:
    3.5824406 = score(doc=0,freq=1.0 = termFreq=1.0
), product of:
      5.0 = boost <---
      0.9444616 = idf, computed as log(1 + (docCount - docFreq + 0.5) / (docFreq + 0.5)) from:
        3.0 = docFreq
        8.0 = docCount
      0.7586207 = tfNorm, computed as (freq * (k1 + 1)) / (freq + k1 * (1 - b + b * fieldLength / avgFieldLength)) from:
        1.0 = termFreq=1.0
        1.2 = parameter k1
        0.75 = parameter b
        1.125 = avgFieldLength
        2.0 = fieldLength
...