弹性搜索直方图聚合中的时区不正确

时间:2015-12-24 15:38:18

标签: elasticsearch aggregation

我有一个带字段的文档 "creationDate": "2015-12-13T22:00:00.000+0300" 该字段的映射是:

"creationDate": {
  "type": "date",
  "format": "dateOptionalTime"
}

我想使用此查询以现有格式创建直方图聚合和格式输出日期:

{
  "size": 0,
  "aggs": {
    "docs": {
      "filter": {
        "and": {
          "filters": [
            {
              "range": {
                "creationDate": {
                  "gte": "2015-12-23T00:00:00+02:00",
                  "lte": "2015-12-23T23:59:59+02:00"
                }
              }
            }
          ]
        }
      },
      "aggs": {
        "deep": {
          "nested": {
            "path": "actions"
          },
          "aggs": {
            "histogram": {
              "date_histogram": {
                "field": "actions.creationDate",
                "interval": "1h",
                "format": "yyyy-MM-dd'T'HH:mm:ssZ",
                "time_zone": "+03:00"
              }
            }
          }
        }
      }
    }
  }
}

但结果我得到UTC格式的结果:

    {
    "key_as_string": "2015-12-13T19:00:00+0000",
    "key": 1450033200000,
    "doc_count": 1
    }

我不明白为什么存在格式转换为UTC以及如何获得预期的格式?我认为“time_zone”参数应该解决这个问题,但没有

1 个答案:

答案 0 :(得分:1)

我假设您正在使用Elasticsearch 1.x,因为这似乎是在2.x中得到改进的预期行为。请参阅此评论here,以及在2.x分支中添加此增强功能的问题。