list 형태로 적재된 nested field의 전체 size 구하기

 

POST products/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "must": [
              {
                "nested": {
                  "path": "products",
                  "query": {
                    "exists": {
                      "field": "products"
                    }
                  }
                }
              }
            ] 
          }
        }
      ]
    }
  },
  "aggs": {
    "agg_hour": {
      "date_histogram": {
        "field": "time",
        "calendar_interval": "1h",
        "time_zone": "Asia/Seoul",
        "min_doc_count": 1
      },
      "aggs": {
        "products_agg": {
          "sum": {
            "script": {
              "inline": "params._source.products.size()"
            }
          }
        }
      }
    }
  }
}

 

products 인덱스에 nested list 형태로 적재되어있는 products 필드의 길이를 계산하여 시간대 별로 합산하여 집계

  • query 옵션으로 products 필드가 존재하는 문서만 집계 대상에 포함
  • aggs 옵션에 sum 메트릭 이용하여 products의 size의 합 집계
  • date_histogram 이용해 시간대 별 집계 적용

 

 

 

 

 

'Elasticsearch' 카테고리의 다른 글

Elasticsearch 디스크 불균등 이슈 해결하기  (0) 2024.03.10
keyword list 필드 string으로 합치기  (1) 2023.12.23
NGram analyzer  (0) 2023.12.14
Elasticsearh Enrich processor  (1) 2023.10.28
ElasticSearch(oss) vs OpenSearch  (0) 2023.10.28

+ Recent posts