как агрегировать значение во вложенном во вложенном положении вasticsearch?
у меня нет проблем с одним вложенным объектом, но в гнезде внутри вложенного объекта я путаюсь ...
образец данных:
"cat_a": [
{
"position": "base",
"tools": [
"inside",
"out"
],
"entry": [
{
"tx_a": "inside",
"rx_a": [
"soft_1",
"soft_2",
"soft_3",
"soft_4"
],
"number": 0.018
},
{
"tx_a": "out",
"rx_a": [
"soft_1",
"soft_3",
"soft_5",
"soft_7"
],
"number": 0.0001
}
],
"basic": true
}
]
желаемый результат:
{
"aggregations": {
"sample_agg": {
"count": {
"buckets": [
{
"key": "soft_1",
"doc_count": 2
},
{
"key": "soft_3",
"doc_count": 2
},
{
"key": "soft_2",
"doc_count": 1
}
]
}
}
}
}
моя версия эластичного поиска - 6.2.3.
в отображении индекса я устанавливаю тип полей "cat_a" и "entry" на "вложенные", когда я запрашиваю агрегат из поля "tools", в корне (уровень 1) "cat_a" нет проблем, и он работает, но в агрегации на rx_a (это на уровне 2) я не могу получить результат, он либо пуст, либо показал ошибку из-за моего неверного запроса.
запрос для уровня 1 agg:
{
"aggs" : {
"sample_agg" : {
"nested" : {
"path" : "cat_a"
},
"aggs" : {
"count" : { "terms" : { "field" : "cat_a.rx_a.keyword" ,"size":10} }
}
}
}
}
как мне сделать для вложенных во вложенных?