У меня есть запрос с двумя функциями затухания (ES 2.4.4), я использую "score_mode" : "sum"
для суммирования баллов по функциям затухания + оценка по термину запроса.для теста я использую "boost_mode" : "replace"
, чтобы другие оценки (из запроса) не влияли на мою оценку (я хочу проверить функции затухания).
это мои функции распада:
"function_score": {
"boost_mode" : "replace",
"score_mode" : "sum",
"functions": [
{
"gauss": {
"date": {
"scale": "10d",
"offset": "15d",
"decay": 0.9
}
}, "weight" : 400
},
{
"gauss": {
"priority": {
"origin": "5000",
"scale": "2000",
"decay": 0.9
}
}, "weight" : 20
}
]
мои результаты включают 2 статьи с разными датами (2017-08-28, 2009-05-08) стот же приоритет (1000) и тот же счет!(13.122) как это может быть?почему 2017-08-28
не получает лучший результат?поэтому я попытался объяснить запрос.
для 2017-08-28:
`"value": 13.122,
"description": "function score, score mode [sum]",
"details": [
{
"value": 7.897688e-31,
"description": "function score, product of:",
"details": [
{
"value": 1,
"description": "match filter: *:*",
"details": [
]
},
{ }
]
},
{
"value": 13.122,
"description": "function score, product of:",
"details": [
{
"value": 1,
"description": "match filter: *:*",
"details": [
]
},
{
"value": 13.122,
"description": "product of:",
"details": [`
Я не понимаю, почему оценка составляет 13,122 вместо 13,122 + 7,897.есть ошибка с "score_mode" : "sum"
или есть что-то, чего я не понимаю?другая статья от 2009-05-08 имеет оценку 13,122 для приоритета и 0 для даты.
примечание: я должен использовать "score_mode" : "sum"
, потому что я хочу получить 10 лучших результатов по каждому типу, идля некоторых моих типов дата не имеет значения, поэтому я использую старую дату, в которой счет равен 0, когда в режиме оценки установлено умножение (режим оценки по умолчанию с упругой передачей) все мои оценки для этого типа возвращаются как 0 из-за умножения.