как пометить внутренний вложенный объект для элемента упругого поиска? - PullRequest
0 голосов
/ 07 февраля 2020

У нас есть данные, как показано ниже:

{
    "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"
                }
            }
        }
    }
}

Я понятия не имею о агрегации вложенных объектов. Кто-нибудь может мне помочь? Заранее спасибо.

...