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



我有一个带有字段的文档"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"参数应该可以解决这个问题,但没有

我假设您使用的是Elasticsearch 1.x,因为这似乎是2.x中改进的预期行为。请参阅此处的注释,以及在2.x分支中添加此增强的问题。

最新更新