{
"query":{
// 使用得分函数
"function_score":{
// 查询的关键字
"query":{
"multi_match":{
// 关键字
"query":"博客",
// title 的权重是 body 的 "10"倍,具体可自行查阅官方文档的计算方式
"fields":[
"title^10",
"body"
]
}
},
// 函数得分如何作用于原始得分(这里是相乘)
"boost_mode":"multiply",
// 函数的总得分(现在是所有得分累加)
"score_mode":"sum",
"functions":[
// 使用高斯函数, 原始日期是 2020-04-27
// 距离原始日期 30 天之内的都能得到满分(以前未来日期都算),也就是 1
// 距离原始日期 30 ~ 90 天的使用高斯函数得分
// 距离原始日期超过 90 天(30+60) 的都得最低分,也就是 0.5
{
"gauss":{
"created_date":{
"origin":"2020-04-27",
"offset":"30d",
"scale":"60d",
"decay":0.5
}
},
"weight": 1
},
// 使用线性函数,所有参数和高斯一致,只不过衰减程度不一样
// 值的注意的是线性函数有可能得 0 分
{
"linear":{
"hot_value":{
"origin":100,
"offset":10,
"scale":50,
"decay": 0.5
}
},
// 可设置函数的权重
"weight": 2
}
]
}
}
}