Elasticsearch: объединение результатов агрегации по ключу корзины - PullRequest
0 голосов
/ 26 октября 2018

Я ищу что-то похожее на этот без ответа вопрос

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

Вот пример вывода (очень упрощенный с ложными данными, конечно)

"aggregations": {
    "potatoeEvents": {
        "doc_count": 21,
        "potatoes": {
            "doc_count": 21,
            "nature": {
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": "Yellow",
                        "doc_count": 6,
                        "bag": {
                            "doc_count": 0,
                            "size": {
                                "value": 0
                            }
                        }
                    },
                    {
                        "key": "Red",
                        "doc_count": 6,
                        "bag": {
                            "doc_count": 0,
                            "size": {
                                "value": 0
                            }
                        }
                    }
                ]
            }
        }
    },
    "bananaEvents": {
        "doc_count": 18,
        "bananas": {
            "doc_count": 18,
            "nature": {
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": "Yellow",
                        "doc_count": 3,
                        "tree": {
                            "doc_count": 3
                        }
                    }
                }
            }
        }
    }

А вот вывод, который я бы хотел получить:

"aggregations": {
        "potatoeEvents_bananasEvents": {
            "doc_count": 21,
            "potatoes_bananas": {
                "doc_count": 21,
                "nature": {
                    "doc_count_error_upper_bound": 0,
                    "sum_other_doc_count": 0,
                    "buckets": [
                        {
                            "key": "Yellow",
                            "doc_count": 6,
                            "bag": {
                                "doc_count": 0,
                                "size": {
                                    "value": 0
                                }
                            },
                            "tree": {
                                "doc_count": 3
                            }
                        },
                        {
                            "key": "Red",
                            "doc_count": 6,
                            "bag": {
                                "doc_count": 0,
                                "size": {
                                    "value": 0
                                }
                            }
                        }
                    ]
                }
            }
        }
    }

Как видите, я объединяю два типа документов в одном запросе (это прекрасно работает). Идентификатор сегментов также одинаков. Можно ли постобработать эти агрегаты, чтобы получить то, что я хочу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...