我在使用不同的方法時收到不同的_scores,但我期待着相同的結果。elasticsearch function_score返回意想不到的分數
第一種方法是使用script_score,與字段值乘以_score,並用計算出的一個與boost_mode替換最終_score =取代
{
"function_score": {
"query": {
"multi_match": {
"query": "body",
"fields": ["title", "text", "keywords"],
"operator": "and"
}
},
"functions": [{
"script_score": {
"script": {
"lang": "groovy",
"inline": "_score * doc['power'].value"
}
}
}],
"boost_mode": "replace"
}
}
第二個是使用script_score只返回字段的值,並通過讓發動機計算_score使用boost_mode = multiply
{
"function_score": {
"query": {
"multi_match": {
"query": "body",
"fields": ["title", "text", "keywords"],
"operator": "and"
}
},
"functions": [{
"script_score": {
"script": {
"lang": "groovy",
"inline": "doc['power'].value"
}
}
}],
"boost_mode": "multiply"
}
}
爲什麼查詢返回不同的_scores?
我得到了與預期相同的分數,使用替換或乘法 – user3775217