=======在这里更新====
我将data_list
更改为nested
,并在映射中将type设置为“object”。
以下是我的新聚合查询:
"aggs":
{
"data_result": {
"nested": {
"path": "data_list"
},
"aggs": {
"id": {
"terms": {"field":"data_list.id"},
"aggs":{
"values": {
"reverse_nested": {},
"aggs": {
"value_item": {
"terms": {
"field": "data_list.value"
}
}
}
}
}
}
}
}
}
but i got empty `values` bucket
=========================以下是原始问题=====================
我正在尝试从Elasticsearch获取聚合结果。我的数据结构如下:
DOC 1:
"data_list": [
{
"id": 1,
"name": "a",
"value": "a_value1"
},
{
"id": 2,
"name": "b",
"value": "b_value1"
}
]
DOC 2:
"data_list": [
{
"id": 1,
"name": "a",
"value": "a_value2"
},
{
"id": 2,
"name": "b",
"value": "b_value2"
}
]
我的elasticsearch查询是:
"aggs": {
"data_result" : {
"terms" : {"field" : "data_list.id"} ,
"aggs": {
"values": {
"terms": {"field": "data_list.value"}
}
}
}
}
我想要的是得到如下结果:
"aggregations": {
...
"data_result": {
"buckets": [
{
"key": 1,
"values": ["a_value1","a_value2"]
},
{
"key": 2,
"values": ["b_value1","b_value2"]
},
]
}
}
但是我得到的是:
"buckets": [
{
"key": 1,
"values": ["a_value1","a_value2","b_value1","b_value2"]
},
{
"key": 2,
"values": ["a_value1","a_value2","b_value1","b_value2"]
}
]
有谁知道如何更改聚合查询?
最佳答案
您可能想看看nested datatype和nested aggregation
-亚历克斯
关于elasticsearch - Elasticsearch聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44693040/