Elasticsearch不包含嵌套值的项目汇总

时间:2019-11-26 07:23:58

标签: elasticsearch elasticsearch-aggregation elasticsearch-6

我一直在绞尽脑汁,梳理文档以找到一个Elasticsearch查询,该查询将帮助我解决一个简单的问题,但似乎找不到解决方案。我正在尝试获取不包含嵌套值的所有项目的计数。例如,带有以下项目:

       "label": item1
        "customFields": [
             {
                 "key": "firstType",
                 "value": "foo"
             },
             {
                 "key": "secondType",
                 "value": "bar"
             }
         ]

我想找到所有不包含"key":"secondType"的项目。我试过使用失踪,但由于它是一个嵌套的值,所以不太匹配。我在嵌套路径聚合中使用了must_not过滤器,但是不幸的是,它返回的不是非secondType的所有KEYS的计数,而是项的计数。有什么我想念的吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您不需要聚合,应该使用简单的must_not查询,例如:

{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "customFields.key": "secondType"
          }
        }
      ]
    }
  }
}