我对 es 查询的评分为三functions
:
{
"query": {
"function_score": {
"query": {
"bool": {
...
}
}
}
},
"score_mode": "multiply",
"boost_mode": "replace",
"functions": [
{ f1 },
{ f2 },
{ f3 }
]
}
所以分数是:f1(doc) * f2(doc) * f3(doc)
.
但我想要的是f1(doc) * f2(doc) + f3(doc)
,有什么解决办法吗?
这可能有效,即我们将函数 f1 和 f2 的分数相乘,然后将该分数添加到查询分数中,这是另一个function_score
仅查询 f3。
{
"query": {
"function_score": {
"query": {
"function_score": {
"query": { "match_all": {}},
"functions": [
{
"f3": {...}
}
]
}
},
"functions": [
{
"f1": {...}
},
{
"f2": {...}
}
],
"score_mode": "multiply",
"boost_mode": "sum"
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)