首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch(三) 查询与过滤

Elasticsearch(三) 查询与过滤

作者头像
张凝可
发布2019-08-21 22:33:52
6060
发布2019-08-21 22:33:52
举报
文章被收录于专栏:技术圈技术圈

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

这里使用的场景是在子文档中匹配object字段spu_info.spu_name,brand_info.brand_name,过滤子文档的is_hidden和state的字段,并且在父文档也过滤is_hidden和state字段。

search_obj = {
          "query": {
            "filtered": {
              "query":{
                  "has_child":{
                  "type":"skus",
                  "score_mode":"max",
                  "query":{
                    "filtered":{
                       "query": {
                          "multi_match": {
                            "query": "全纺家私双人床",
                            "type": "cross_fields",
                            "fields": [
                              "spu_info.spu_name^3",
                              "brand_info.brand_name",
                              "tags"
                            ]
                          }
                      },
                      "filter":{
                        "bool":{
                          "must":[
                            {"term":{"is_hidden":0}},
                            {"term":{"state":0}}
                          ]
                        }
                      }

                    }
                  },
                "inner_hits":{}
              }
              },
              "filter": {
                "bool": {
                  "must": [
                    {
                      "term":{"is_hidden":0}
                    },
                    {
                      "term":{"state":0}
                    }
                  ]
                }
              }
            }
          }
        }

在多个字段上进行匹配,并且对不同的字段配置不同的权重,采用cross_fileds,为了显示显示子文档的source,明确指明了inner_hits,并且加入了filer,filer中放入bool过滤器。

去掉里面的填充物,外部的骨架可以总结为下面:

{
  "query": {
    "filtered": {
      "query":{
        
      },
      "filter": {
        "bool": {
          "must": [
          ],
          "should":[],
          ...
        }
      }
    }
  }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

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