如何替代"现在"通过Elasticsearch查询中的具体日期时间?

时间:2017-09-01 09:37:39

标签: elasticsearch lucene elasticsearch-5

我想在以下查询中将now替换为日期时间2017-02-17T15:02:00

POST /myindex/_search
{
  "size": 0,
"aggs": {
    "range": {
        "date_range": {
            "field": "Datetime",
            "ranges": [
                { "to": "now-1H/H" }, 
                { "from": "now/H" } 
            ]
        }
    }
}
}

如果我直接用now替换2017-02-17T15:02:00,则查询将失败并显示错误:

  

输入":" illegal_argument_exception"," reason":"无法识别的字符   结束[2017-02-17T15:02:00 / H]:[/ H]"

另外,我如何指定小时而不是1H?

1 个答案:

答案 0 :(得分:1)

date math doc表示

  

表达式以锚点日期开始,可以是now,也可以是以||结尾的日期字符串。

这意味着在您的示例中,您必须将now替换为2017-02-17T15:02:00||

尝试{ "to": "2017-02-17T15:02:00||-1H/H" }

要指定四分之一小时,请改为使用分钟符号:
{ "to": "2017-02-17T15:02:00||-15m/H" }