-
elasticsearch aggregation(aggs) paging 하기elasticsearch 2020. 5. 7. 22:49반응형
엘라스틱서치 어그리게이션 페이징인 6버젼에서 나온 api이다
우리는 5 -> 7버젼으로 이동중에 있고 거의 대부분이 이전되었다
elasticsearch 5버젼 쓰면서 aggs 페이징 못해서 얼마나 힘들었는지 이번에 버전을 업하면서 사용하게 되어서 굉장히 기분이좋았다 그래서 별거 아니지만 어떻게 사용했는지 공유하고 싶어서 글 쓴다
{ "size": 0, "_source": false, "aggregations": { "data": { "terms": { "field": "test", "min_doc_count": 1, "order": [ { "_key": "asc" } ] }, "aggs": { "data": { "terms": { "field": "test" }, "aggs": { "paging": { "bucket_sort": { "from": 0, "size": 20 } } } } } } } }
aggs만 사용하기 때문에 size는 0처리 하였고 _source도 가져올 필요가 없기때문에 false처리했다
그 하단 부분이 중요한데 aggregations이나 aggs나 같은 표현이니 무시하길 바란다
field test라는놈으로 집합처리를 하고 최소 1개이상인 것을 오름 차순 정렬을 한다 _key는 test 컬럼의 값이 되며 그것을 오름차순 정렬하라
는 의미이다 그 하위 aggs는 상위 그룹핑 한 값을 말 그대로 paging 처리하는 것이다
구지 sql로 따지자면
mysql dual은 없지만 그냥 썻다
select a.test from (select test from dual group by test order by test) as a group by a.test limit 0, 20
반응형'elasticsearch' 카테고리의 다른 글
elasticsearch function_score (0) 2021.02.22 elasticseaarch eager global ordinal를 사용해 퍼포먼스를 올려보자 (0) 2021.02.20 elasticsearch similarity module 이용해서 score 수정하기 (0) 2021.02.15 세그먼트의 불변성 - 장점 (0) 2021.02.12 elasticsearch(with lucene) field_data에 대해서 알아보자 (0) 2021.02.09