У меня есть структура документа, похожая на
{
"orderNo": "123O",
"tradeNo": "567T",
"orderConsideration": 10,
"children": [{
"orderNo": "124O",
"tradeNo": "566T",
"orderConsideration": 15,
"children": [{
"orderNo": "126O",
"tradeNo": "565T",
"orderConsideration": 20,
"children": [{
"orderNo": "127O",
"tradeNo": "564T",
"orderConsideration": 25,
"children": [{
"orderNo": "128O",
"tradeNo": "563T",
"orderConsideration": 30,
"children": []
}]
}]
}]
}]
}
И я могу отправить поисковый запрос примерно так:
GET /data_nested_test/_search
{
"size": 0,
"aggs": {
"group_by_nested": {
"nested": {
"path": "children"
},
"aggs": {
"sum_by_consideration": {
"sum": {
"field": "children.orderConsideration"
}
}
}
}
}
}
Но это будет совпадать только на первом уровне пути, есть ли способ создать вложенную агрегацию для каждого уровня (это может быть 10 глубин или, может быть, больше), чтобы эластик мог следовать по пути вложенного документ до конца и собирать каждое найденное поле?
Таким образом, ответ выше будет
100
Спасибо!