我正在使用function_score
查询,如下所示:
{
"query": {
"function_score": {
"query": {
"multi_match": {
...
}
},
"functions": [
{
"script_score": { // f0
"script": {
...
}
}
},
{
"field_value_factor": { // f1
...
}
},
{
"field_value_factor": { // f2
...
}
},
{
"field_value_factor": { // f3
...
}
},
],
"score_mode": "multiply",
"boost_mode": "multiply"
}
}
}
当前查询将得分计算为_score * (f0 * f1 * f2 * f3)
,但我希望最终得分为_score * (f0 + (f1 * f2 * f3))
。
我不知道是否可以使用sum
和multiply
得分模式进行单一的function_score查询?
我正在使用ElasticSearch-6.2
。