=======这里更新====Elasticsearch聚合
我改变data_list
是nested
和在映射我设置类型为'对象”。 以下是我的新聚集查询:
"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"]
}
]
做任何事e有任何想法我应该如何改变聚合查询?
你应该定义你的'data_list'为'nested'。默认的类型是'object'。 –
嵌套数据类型和嵌套聚合工作 – Emma