Я должен сделать некоторые агрегации на данных JSON. Я видел несколько ответов здесь на stackoverflow, но у меня ничего не получалось.
У меня есть несколько строк и в столбце timeCountry у меня есть массив, в котором хранятся объекты JSON. с подсчетом ключей, страна_имя, s_name.
Я должен найти сумму всех строк в соответствии с s_name,
Пример - если в 1-й строке timeCountry содержит массив, как показано ниже
[ {
"count": 12,
"country_name": "america",
"s_name": "us"
},
{
"count": 10,
"country_name": "new zealand",
"s_name": "nz"
},
{
"count": 20,
"country_name": "India",
"s_name": "Ind"
}]
Данные строки 2 как ниже
[{
"count": 12,
"country_name": "america",
"s_name": "us"
},
{
"count": 10,
"country_name": "South Africa",
"s_name": "sa"
},
{
"count": 20,
"country_name": "india",
"s_name": "ind"
}]
вроде так.
Мне нужен результат, как показано ниже
[{
"count": 24,
"country_name": "america",
"s_name": "us"
}, {
"count": 10,
"country_name": "new zealand",
"s_name": "nz"
},
{
"count": 40,
"country_name": "India",
"s_name": "Ind"
}, {
"count": 10,
"country_name": "South Africa",
"s_name": "sa"
}
]
приведенные выше данные относятся только к одной строке, у меня есть несколько строк timeCountry это столбец
То, что я пытался написать для агрегирования
{
"query": {
"match_all": {}
},
"aggregations":{
"records" :{
"nested":{
"path":"timeCountry"
},
"aggregations":{
"ids":{
"terms":{
"field": "timeCountry.country_name"
}
}
}
}
}
}
Но это не работает Пожалуйста, помогите