개발 이야기/DB, 데이터분석, AI
ES QueryDSL에서 aggregation에 order 설정 제한
가온아
2019. 1. 3. 14:20
Invalid aggregation order path [something]. Buckets can only be sorted on a sub-aggregator path that is built out of zero or more single-bucket aggregations within the path and a final single-bucket or a metrics aggregation at the path end.
아래와 같은 샘플을 만들었었다.
"query" : {
... 검색 조건...
}.
"aggs" : {
"term_key" : {
"terms": {
"field" : "field_first",
"order" : {
"something" : "desc"
}
}
"aggs": {
"something" : {
"terms":{
"field":"field_second"
},
"aggs" : {
"sumofgold" : {
"sum": {
"field":"gold"
}
}
}
}
}
}
}
something과 sumofgold 둘 다 정렬을 하고 싶었는데 그건 안된다. path의 마지막에 오는 metrics aggregation 혹은 단일 버킷으로만 정렬 가능하다.
결과 받아서 코드로 정렬 시켜 해결함.
반응형