У нас есть данные, как показано ниже:
{
"fieldA": "A",
"fieldB": "B",
"object": [{
"name": "A",
"value": 50000
}
]
}
Я хотел бы сгруппировать поля агрегации (порядок по дес c) сумму object.value. Actualy. у нас есть только один элемент для всех данных. предыдущий я могу агрегировать значение A не в объекте массива. Я попробовал простой скрипт, как показано ниже:
{
"size":0,
"aggs":{
"terms_fielda":{
"terms":{
"field":"fieldA"
},
"aggs":{
"group_sum":{
"sum":{
"field":"object.valueA"
}
},
"sort_by":{
"bucket_sort":{
"sort":[
{"group_sum": {"order": "desc"}}
]
}
}
}
}
}
}
Как я могу реализовать внутреннюю сумму вложенного объекта? Ниже приведено сопоставление:
{
"properties": {
"fieldA": {
"type": "keyword"
},
"fieldB": {
"type": "keyword"
},
"car": {
"type": "nested",
"properties": {
"name": {
"type": "keyword"
},
"value": {
"type": "integer"
}
}
}
}
}
Я понятия не имею о агрегации вложенных объектов. Кто-нибудь может мне помочь? Заранее спасибо.