Histogram Aggregation (히스토그램 집계)

히스토그램 집계는 숫자 범위를 특정 간격별로 집계를 수행한다.

GET /apache-web-log/_search?size=0
{
  "aggs": {
    "bytes_histogram": {
      "histogram": {
        "field": "bytes",
        "interval": 10000,
        "min_doc_count": 10
      }
    }
  }
}
# 결과
{
  ...
  "aggregations" : {
    "bytes_histogram" : {
      "buckets" : [
        {
          "key" : 0.0,
          "doc_count" : 4196
        },
        {
          "key" : 10000.0,
          "doc_count" : 1930
        },
        {
          "key" : 20000.0,
          "doc_count" : 539
        },
        {
          "key" : 30000.0,
          "doc_count" : 596
        },
  ...
  }
}

Date Histogram Aggregations (날짜 히스토그램)

날짜 히스토그램은 일반 히스토그램의 날짜 버전이다. 날짜 히스토그램은 분/시간/월/연도 구간으로 집계를 수행할 수 있다.

UTC 기준일 경우, time_zone 필드로 타임존 조정이 가능하다.

GET /apache-web-log/_search?size=0
{
  "aggs": {
    "date_histogram": {
      "date_histogram": {
        "field": "timestamp",
        "fixed_interval": "1d",
        "format": "yyyy-MM-dd",
        "time_zone": "+09:00"
      }
    }
  }
}
# 결과
{
  ...
  "aggregations" : {
    "date_histogram" : {
      "buckets" : [
        {
          "key_as_string" : "2015-05-17",
          "key" : 1431788400000,
          "doc_count" : 538
        },
        {
          "key_as_string" : "2015-05-18",
          "key" : 1431874800000,
          "doc_count" : 2898
        },
        {
          "key_as_string" : "2015-05-19",
          "key" : 1431961200000,
          "doc_count" : 2902
        },
        {
          "key_as_string" : "2015-05-20",
          "key" : 1432047600000,
          "doc_count" : 2862
        },
        {
          "key_as_string" : "2015-05-21",
          "key" : 1432134000000,
          "doc_count" : 799
        }
      ]
    }
  }
}