ElasticSearch:在聚合期间连接数组的元素

ElasticSearch: Concatenate elements of arrays during aggregation

我的数据的一个简单示例:

    {
        "email" : "user@mail.com",
        "error_codes" : ["12.03","23.22","44.45"]
    }

    {
        "email" : "user@mail.com",
        "error_codes" : ["34.2","23.22","44.45"]
    }

我想要一个这样的return:

    {...
        "aggregations":{
            "buckets" : [
                {
                    "key" : "user@mail.com",
                    "concat_array": {
                        "value":{
                            ["12.03","23.22","44.45","34.2","23.22","44.45"]
                        }
                    }
                }
            ]
        }
    }

我知道如何通过电子邮件执行聚合并对简单值求和,但我找不到像上面的结果那样连接数组的方法,虽然看起来很简单。有可能吗? 谢谢:)

我认为这是不可能的。

只是想知道,这个用例对我来说有点奇怪。 你为什么要保存这种格式的东西? 如果您想保存错误代码并且用户也许可以将它们中的每一个保存为文档? 你需要问问自己,哪些问题你以后可能想回答。从我在这里看到的情况来看,一个常见的方法是了解每个错误代码有多少响应。另一个问题可能是每个用户收到了多少错误,所有这些问题都可以通过将每个错误日志放入单独的文档来回答。

我认为这最适合你的情况。