ElasticSearch 自定义排序之 field_value

2022-01-05  本文已影响0人  我一直都在
先上示例
POST /s_person/_search
{
    "query": {
        "function_score": {
            "query": {
                "multi_match": {
                    "query": "QQ", 
                    "type": "best_fields", 
                    "fields": ["person_name^3"]
                }
            },
            //  new_score = old_score + log(1 + 1.2 * weight值)
            "field_value_factor": {
                "field": "weight",
                "modifier": "log1p",
                "factor": 1.2, 
                "missing": 1    // 若 weight 字段不存在,则默认为1
            },
            "boost_mode": "sum"
        }
    }
}

1、modifier参数支持的值:

2、factor参数

3、missing参数

4、boost_mode参数

multiply:_score乘以函数结果(默认情况)
sum:_score加上函数结果
min:_score和函数结果的较小值
max:_score和函数结果的较大值
replace:将_score替换成函数结果

上一篇 下一篇

猜你喜欢

热点阅读