1

我在 ElasticSearch 中有以下文档:

"ipAddress": "192.168.10.12", "timestamp": "25 Oct 2015 20:00:00", "switchovers": 2

"ipAddress": "192.168.10.12", "timestamp": "26 Oct 2015 20:00:00", "switchovers": 1

如何编写一个弹性搜索聚合来找出切换[今天]-切换[昨天]按 IP 地址分组?

这就是我所在的地方:

{
"size": 0,
"query": {
  "match_all": {}
},
    "aggs": {
      "switchover_count_over_time": {
        "terms": {
          "field": "ipAddress"
        },
      }
  }
}'

尚未弄清楚如何提取每个日期的切换(例如从 oct 开始)并计算与前一天切换值的差异。

有什么帮助吗?

4

1 回答 1

1

您可以在日期/时间戳字段上使用日期直方图聚合。这是链接https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html 。添加date_histogram 聚合内的 ipaddress/switchovers 上的术语聚合。

{
    "aggs" : {
        "date_interval" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "month"
            }, "aggs": {
              "switch_over": {
                "terms": {
                  "field": "ip/switchovers",
                  "size": 100
                }
              }
            }
        }
    }
}

希望这对你有用。

于 2015-11-24T12:03:16.057 回答