Elasticsearch Must_not与嵌套对象上的现有查询返回排除的字段

uinbv5nw  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(189)

我使用的是ElasticSearch 7.17版,使用它的搜索API进行查询。ElasticSearch中索引内的数据是使用Logstash从SQL数据库加载的。在查询中,我使用must_not exists查询来获取类内组中没有email_list的文档。我的Map和数据如下所示:
第一个
到目前为止,我已经尝试了几个查询,包括nested查询,下面是我尝试过的一些查询,
第一个
但是,这些查询总是返回包含email_list的文档。
谢谢

ecr0jaav

ecr0jaav1#

您需要在嵌套查询中使用完整字段名class.group.email_list下面查询将给出预期结果

{
  "query": {
    "bool": {
      "must_not": [
        {
          "nested": {
            "path": "class.group",
            "query": {
              "exists": {
                "field": "class.group.email_list"
              }
            }
          }
        }
      ]
    }
  }
}

相关问题