首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ES搜索内容置顶

ES搜索内容置顶

原创
作者头像
蒙古上单2
修改2021-05-18 19:29:10
修改2021-05-18 19:29:10
2.2K00
代码可运行
举报
文章被收录于专栏:第二蒙古上单第二蒙古上单
运行总次数:0
代码可运行

有些时候,我们可能需要人工干预ES的搜索结果,让指定的内容置顶,ES提供了pinned语法来实现该功能。

代码语言:javascript
代码运行次数:0
运行
复制
GET article_search/_search
{
  "query" : {
    "pinned":{
      "ids" : ["1234567"],
      "organic": {
        "match" : {
          "title": "制作云"
        }
      }
    }
  },
  "size" : 10,
  "from" : 0
}

pinned里面的ids表示要置顶的文档id列表。

organic是任意的查询语句。我们可以换成一个复杂的查询:

代码语言:javascript
代码运行次数:0
运行
复制
GET article_search/_search
{
  "query" : {
    "pinned":{
      "ids" : ["1234567"],
      "organic": {
        "bool" : {
          "should" : [
            {
              "match_phrase" : {
                "title" : {
                  "query" : "制作云",
                  "boost" : 2,
                  "slop" : 4
                }
              }
            },
            {
              "multi_match" : {
                "query" : "制作云",
                "type" : "best_fields",
                "fields" : ["title", "plain"],
                "minimum_should_match" : "20%",
                "boost" : 1
              }
            }
          ],
          "minimum_should_match" : 1
        }
      }
    }
  },
  "size" : 10,
  "from" : 0
}

看文档说似乎是从ES 7.4版本开始支持这个语法。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档