function score query会修改查询算分
原始算分 query score
相关性算分 & 算分函数
weight
给定一个常量值,作为函数结果 function score
field_value_factor
用文档中的某个字段值作为函数结果
random_score
随机生成一个值,作为函数结果
script_score
自定义计算公式,公式结果作为函数结果
加权模式
定义 query score
和 function score
的计算方式
multiply
两者相乘,默认为此加权模式
replace
用function score 替换 query score
其他
比如 sum avg max min
GET /hotel/_serach
{
"query":{
function_score: {
query: {match: {all: "外滩"}}, //原始查询条件,根据相关性打分,算分结果query score
functions:[
{
filter:{term: {id: 1}}, //过滤条件,复合条件的文档才会被重新算分
weight: 10 //算分函数,结果成为function score,将来会与query score一起计算得到新算分,常见的有weight field_value_factor random_score script_score
}
],
boost_mode: multiply //加权模式,定义query score 和 function score 的计算方式,主要有 multiply replace 和 其他比如 sum avg max min
}
}
}