elasticsearch. guide

Custom Score Query

custom_score 查询可以包含其他种类的查询并且自定义评分标准, 可以使用 脚本表达式 来根据文档查询结果中(数值型)的值计算评分, 下面是一个简单的例子:

"custom_score" : {
    "query" : {
        ....
    },
    "script" : "_score * doc['my_numeric_field'].value"
}

除了使用文档结果字段和脚本表达式外, 还可以使用 _score 参数来获取其所含查询的评分.

脚本参数

脚本会被缓存下来用以加快执行速度. 如果脚本中有参数需要代入使用的话, 推荐的方法是使用同一个脚本,然后传入参数:

"custom_score" : {
    "query" : {
        ....
    },
    "params" : {
        "param1" : 2,
        "param2" : 3.1
    }
    "script" : "_score * doc['my_numeric_field'].value / pow(param1, param2)"
}
 
Fork me on GitHub