Агрегирующий массив значений в эластичном поиске

Мне нужно агрегировать массив следующим образом

Два примера документа:

{
    "_index": "log",
    "_type": "travels",
    "_id": "tnQsGy4lS0K6uT3Hwzzo-g",
    "_score": 1,
    "_source": {
        "state": "saopaulo",
        "date": "2014-10-30T17",
        "traveler": "patrick",
        "registry": "123123",
        "cities": {
            "saopaulo": 1,
            "riodejaneiro": 2,
            "total": 2
        },
        "reasons": [
            "Entrega de encomenda"
        ],
        "from": [
            "CompraRapida"
        ]
    }
},
{
    "_index": "log",
    "_type": "travels",
    "_id": "tnQsGy4lS0K6uT3Hwzzo-g",
    "_score": 1,
    "_source": {
        "state": "saopaulo",
        "date": "2014-10-31T17",
        "traveler": "patrick",
        "registry": "123123",
        "cities": {
            "saopaulo": 1,
            "curitiba": 1,
            "total": 2
        },
        "reasons": [
            "Entrega de encomenda"
        ],
        "from": [
            "CompraRapida"
        ]
    }
},

Я хочу объединитьcities массив, чтобы узнать всеcities traveler пошел в. Я хочу что-то вроде этого:

{
    "traveler":{
        "name":"patrick"
    },
    "cities":{
        "saopaulo":2,
        "riodejaneiro":2,
        "curitiba":1,
        "total":3
    }
}

Гдеtotal это длинаcities массив минус 1. Я попробовал агрегацию терминов и сумму, но не смог вывести желаемый результат.

Могут быть внесены изменения в структуру документа, поэтому, если что-то подобное поможет мне, я был бы рад узнать.

Ответы на вопрос(1)

Ваш ответ на вопрос