概述:
在es检索文档时会根据score(BM25算法)的分值降序排列查询结果,如果希望根据某些条件对于算分进行修改,则可以使用 Function Score Query。
语法说明:
操作测试
#function score query
POST /book/_search
{
"query": {
"function_score": {
"query": { #这里是查询题名包含三体的文档
"match": {
"title": "三体"
}
},
"functions": [
{
"filter": { #算分的规则过滤器
"term": {
"publishName": "清华出版社"
}
},
"weight":10 #权重模式
}
]
}
}
}
首先查看原始算分查询结果,可以看到中华书局的相关度算分更高
执行Function Score Query查询后,可以看到算分值=权重值*默认相关度算分,查询的排名更靠前