elasticsearch - Elasticsearch聚合

标签 elasticsearch

=======在这里更新====

我将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 datatypenested aggregation

-亚历克斯

关于elasticsearch - Elasticsearch聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44693040/

相关文章:

elasticsearch - ElasticSearch可以在将源文档保留在原位置的同时仅创建/存储索引吗?

amazon-web-services - Logstash Http输入插件

java - hibernate 搜索中的 ZonedDateTime 的 DateBridge 在索引数据时出现异常

rest - 使用Restful API curl

Heroku 上 ElasticSearch 的 Python 包装器

elasticsearch - 不区分大小写的查询

python - elasticsearch-py 扫描并滚动返回所有文档

elasticsearch - 脚本字段在kibana中不起作用

elasticsearch - 如何在Elasticsearch中索引Twitter数据?

python-2.7 - 带有条件和范围的elasticsearch-dsl-py查询过滤器