繁体   English   中英

Elasticsearch 多字段聚合

[英]Elasticsearch aggregation on multi fields

这是我的 ES 索引中的文档示例:

{
  "src_ip": "192.168.1.1",
  "dst_ip": "192.168.1.2"
}

我想获得 ip 在不同文档中的出现次数(在字段 src_ip 或 dst_ip 中)。 作为查询的结果,我想得到的是这样的聚合:

[
  {"ip": "192.168.1.1", "count": 1"},
  {"ip": "192.168.1.2", "count": 1"}
]

对此有什么想法吗? 在此先感谢您的帮助。

您需要使用term aggregation ,在那里您将获得组计数。

POST index_name/_search?size=0
{
  "aggs": {
    "src_ip_count": {
      "terms": {
        "field": "src_ip"
      }
    },
    "dst_ip_count": {
      "terms": {
        "field": "dst_ip"
      }
    }
  }
}

这里我假设src_ipdst_ip的类型是keyword 如果不是,您需要将所有值存储为关键字类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM