在Elasticsearch中使用聚合获取特定字段的值的计数

iswrvxsc  于 2023-08-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(119)

在我的索引中,我有多个文档具有字段event.code,具有不同的值,如下面-

"event": {"code": "98"},
"event": {"code": "99"},
"event": {"code": "98"},
"event": {"code": "88"}.

字符串
我想要Elasticsearch聚合查询,它可以给我特定事件代码的计数。例如:事件计数。代码98为2。(基本上不需要特定值的计数字段)
关于堆栈溢出本身有许多计数聚合问题,但没有一个能回答我的疑问。请帮助我在同一个。
先谢谢你。

l7mqbcuq

l7mqbcuq1#

这里有一个例子

"size": 0,
  "aggs": {
    "event_code_count": {
      "filter": {
        "term": {
          "event.code": "98"
        }
      },
      "aggs": {
        "event_code_count": {
          "value_count": {
            "field": "event.code"
          }
        }
      }
    }
  }
}

字符串
在本例中,我们将terms聚合与filter结合使用,以获取特定事件代码的计数,在本例中为98。value_count聚合嵌套在中,以计算该特定事件代码的发生次数。
解释查询结构:

  • size参数设置为0,这意味着我们只需要聚合结果,而不返回任何文档。
  • 外部event_code_count聚合是以字段event.code为目标的过滤器聚合,其term过滤器的值为98。
  • event_code_count聚合中,value_count聚合用于计算event.code字段的出现次数。结果将为您提供特定事件代码的计数

相关问题