Elasticsearch DSL查询语法-Function Score Query

概述:

在es检索文档时会根据score(BM25算法)的分值降序排列查询结果,如果希望根据某些条件对于算分进行修改,则可以使用 Function Score Query。

语法说明:

Elasticsearch DSL查询语法-Function Score Query_第1张图片

操作测试

#function score query
POST /book/_search
{
  "query": {
    "function_score": {
      "query": { #这里是查询题名包含三体的文档
        "match": {
          "title": "三体"
        } 
      },
      "functions": [
        {
          "filter": { #算分的规则过滤器
            "term": {
              "publishName": "清华出版社"
            }
          },
          "weight":10 #权重模式
        }
      ]
    }
  }
}

首先查看原始算分查询结果,可以看到中华书局的相关度算分更高
Elasticsearch DSL查询语法-Function Score Query_第2张图片
执行Function Score Query查询后,可以看到算分值=权重值*默认相关度算分,查询的排名更靠前
Elasticsearch DSL查询语法-Function Score Query_第3张图片

你可能感兴趣的:(Elasticsearch,elasticsearch,搜索引擎,大数据)