弹性搜索和时区

时间:2012-06-02 10:50:57

标签: elasticsearch timezone

我有一个带有时间字段的索引,其值如下:

time: 2012-06-02T12:25:27+02:00

然后我正在运行以下查询:

{
  "sort": {
    "time": "desc"
  },
  "query": {
    "query_string": {
      "query": "time:[2012-6-2T12:24:00Z TO 2012-6-2T12:26:00Z]",
      "default_operator": "AND"
    }
  },
  "size": 30
}

即返回0次点击,但是如果我将查询字符串移动2小时,那么它会与当时的记录匹配。所以,我很确定这是一个时区问题。阅读我发现的文档我可以在查询中放置一个“time_zone”:2,但....它应该放在上一个查询中的哪个位置?我尝试了很多选项,但无法使其发挥作用。

1 个答案:

答案 0 :(得分:6)

您可能已在直方图日期构面中看到“time_zone”参数,该参数与此查询不同。 query_string查询不接受time_zone参数。我认为这里最简单的解决方案是在查询中用所需的时区替换“Z”:

{
  "sort": {
    "time": "desc"
  },
  "query": {
    "query_string": {
      "query": "time:[2012-6-2T12:24:00+02:00 TO 2012-6-2T12:26:00+02:00]",
      "default_operator": "AND"
    }
  },
  "size": 30
}