首页 > 解决方案 > 结合查询与日期直方图

问题描述

我想计算上一小时的文档数量,并将它们汇总在 5 分钟的存储桶中。这是我的查询:


    GET logs-tsi-2019.05/tsi-json-log/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "range": {
                "@timestamp": {
                  "gte": "now-1h",
                  "lt": "now"
                }
              }
            },
            {
              "term" : {
                "application" : "sso"
              }
            },
            {
              "query_string": {
                "default_field": "*",
                "query": "grant_type=refresh_token",
                "analyze_wildcard": true
              }
            }
          ]
        }
      }
    }

如何将此查询与 date_histogram 聚合结合起来?

问候,克里斯

标签: elasticsearch

解决方案


好的开始!你可以这样做:

GET logs-tsi-2019.05/tsi-json-log/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "@timestamp": {
              "gte": "now-1h",
              "lt": "now"
            }
          }
        },
        {
          "term" : {
            "application" : "sso"
          }
        },
        {
          "query_string": {
            "default_field": "*",
            "query": "grant_type=refresh_token",
            "analyze_wildcard": true
          }
        }
      ]
    }
  },
  "aggs": {
    "5min": {
      "date_histogram": {
        "field": "@timestamp",
        "interval": "5m"
      }
    }
  }
}

推荐阅读