Nested 집계

Nested 집계

nested 집계를 사용하면 중첩된 객체 안의 필드에 대해 집계할 수 있어요. nested 타입은 객체 배열의 각 요소를 별도의 숨겨진 문서로 색인하는 object 데이터 타입의 특수 버전이에요. 이렇게 하면 같은 배열 요소 안의 필드 간 관계가 보존되어 함께 쿼리하고 집계할 수 있어요.

출처: 문서

본문

Nested 집계 예제 (Nested aggregation example)

중첩 배열 안의 필드에 대해 집계하려면 중첩 필드의 경로를 지정하고 그 아래에 하위 집계를 정의해요:

GET logs-nested/_search
{
  "query": {
    "match": { "response": "200" }
  },
  "aggs": {
    "pages": {
      "nested": { "path": "pages" },
      "aggs": {
        "min_load_time": { "min": { "field": "pages.load_time" } }
      }
    }
  }
}

반환된 hit은 요청된 집계를 포함해요:

"hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "logs-nested",
        "_id": "0",
        "_score": 1,
        "_source": {
          "response": "200",
          "pages": [
            {
              "page": "landing",
              "load_time": 200
            },
            {
              "page": "blog",
              "load_time": 500
            }
          ]
        }
      }
    ]
  },
  "aggregations": {
    "pages": {
      "doc_count": 2,
      "min_load_time": {
        "value": 200
      }
    }
  }

더 알아보기 (Learn more)