개발은 재밌어야 한다
article thumbnail
반응형

만약 엘라스틱 서치에서 RDBMS에서 처럼 GroupBy로 묶으려면 해당 필드를 subAggregation형태로 쿼리DSL을 만들어 주면 된다.

 

<예시>

SQL

SELECT 
	*
FROM 
	example
WHERE
	wantField = 3
GROUP BY
	field1,
	field2,
	field3

 

<예시>

Query DSL 

GET example*/_search?
{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "wantField": {
              "value": 3,
              "boost": 1
            }
          }
        }
      ],
      "adjust_pure_negative": true,
      "boost": 1
    }
  },
  "aggs": {
    "agg1": {
      "terms": {
        "field": "field1"
      },
      "aggs": {
        "agg2": {
          "terms": {
            "field": "field2"
          },
          "aggs": {
            "agg3": {
              "terms": {
                "field": "field3"
              }
            }
          }
        }
      }
    }
  }
}

 

반응형

'NoSQL > ElasticSearch' 카테고리의 다른 글

SQL문을 엘라스틱서치 query dsl로 변환 사이트  (0) 2022.03.30
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!