操作由函数计算的最终分数

时间:2016-11-14 13:57:57

标签: elasticsearch

我想操纵按功能计算的最终得分。

{
    "query": {
        "function_score": {
            "functions": [
                {
                    //Some decay function --> f1
                },
                {
                    //Some decay function --> f2
                },
                {
                    //Some field_value_factor --> f3
                }                   
            ],
            "score_mode": "sum",
            "boost_mode": "replace"
        }
    }
}

此查询计算最终得分如下:final score = f1 + f2 + f3

有没有办法让这样的得分最终得分?

final score = (f1 + f2 + f3) * doc['fancy_field']

1 个答案:

答案 0 :(得分:3)

您可以将TCHAR buf[1024]; size_t cbDest = 1024 * sizeof(TCHAR); StringCbPrintf(buf, cbDest, TEXT("frequency = %f"), (float)result); OutputDebugString(buf); 查询包含在具有script_score函数的另一个查询中,该函数将包装查询的function_score(即f1 + f2 + f3)乘以{{1} }。

_score