Сортировка после агрегации в Elasticsearch
у меня есть документы с такой структурой:
{
FIELD1:string,
FIELD2:
[ {SUBFIELD:number}, {SUBFIELD:number}...]
}
Я хочу отсортировать результат суммы чисел в FIELD2.Подполя:
GET myindex/_search
{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
Если я это сделаю, я получу ведра не отсортированными, но я хочу, чтобы ведра были отсортированы по значению "a2". Как я могу это сделать? Спасибо!
1 ответов
у тебя почти получилось. Вам просто нужно добавить order
свойства на a1
агрегации терминов, например:
GET myindex/_search
{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0,
"order": {"a2": "desc"} <--- add this
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}