Global 집계

Global 집계

global 집계는 검색 쿼리와 무관하게 인덱스의 모든 문서를 담은 단일 버킷을 만들어요. global 안에 중첩된 하위 집계는 전체 문서 집합에 대해 동작하므로, 같은 요청에서 필터링된 메트릭을 전체 메트릭과 비교할 수 있어요.

global 집계는 최상위(top-level) 집계로만 배치할 수 있어요. 다른 버킷 집계 안에 중첩하면 효과가 없어요.

출처: 문서

본문

예제 (Example)

다음 예제는 단일 요청에서 두 개의 평균을 계산해요. 하나는 쿼리 범위로 한정된 것($50 미만 주문)이고 다른 하나는 global 집계를 사용한 전체 문서에 대한 것이에요:

GET /opensearch_dashboards_sample_data_ecommerce/_search
{
  "size": 0,
  "query": {
    "range": {
      "taxful_total_price": {
        "lte": 50
      }
    }
  },
  "aggs": {
    "total_avg_amount": {
      "global": {},
      "aggs": {
        "avg_price": {
          "avg": {
            "field": "taxful_total_price"
          }
        }
      }
    },
    "filtered_avg": {
      "avg": {
        "field": "taxful_total_price"
      }
    }
  }
}

예제 응답 (Example response)

{
  "took": 19,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1633,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "total_avg_amount": {
      "doc_count": 4675,
      "avg_price": {
        "value": 75.05542864304813
      }
    },
    "filtered_avg": {
      "value": 38.363175998928355
    }
  }
}

total_avg_amount 집계는 4,675개 전체 문서의 평균($75.06)을 보고하는 반면, filtered_avg는 쿼리와 일치하는 1,633개 문서만의 평균($38.36)을 보고해요.

응답 본문 필드 (Response body fields)

필드 데이터 타입 설명
doc_count Integer 검색 쿼리와 무관한 인덱스의 총 문서 수.

더 알아보기 (Learn more)