如何在我的 elasticsearch 查询中附加时间戳范围?

How could I append time stamp range within my elasticsearch query?

我正在尝试将 elasticsearch 查询作为 POST 请求执行,以便从我创建的索引中提取数据。索引中的数据是来自 MySQL 数据库的 table,通过 logstash.

配置

这是我的请求和 JSON 正文:

http://localhost:9200/response_summary/_search

正文:

{
   "query": {
       "query_string": {
           "query": "transactionoperationstatus:\"charged\" AND api:\"payment\" AND operatorid:\"XL\" AND userid:*test AND time:\"2015-05-27*\" AND responsecode:(200+201)"
       }
   },
    "aggs": {
      "total": {
          "terms": {
              "field": "userid"
          },
   "aggs": {
      "total": {
          "sum": {
              "script": "Double.parseDouble(doc['chargeamount'].value)"
          }
        }
    }
  }
 }
}

在上面的 JSON 正文中,我需要将 timestamp 附加到 query_string 中,以便在日期范围内从索引中获取数据。我尝试在查询末尾添加:

AND timestamp:[2015-05-27T00:00:00.128Z+TO+2015-05-27T23:59:59.128Z]"

我哪里错了?任何帮助将不胜感激。

您只需要删除 +,因为只有在通过 URL 查询字符串发送查询时才需要它们(即 URL 对空格进行编码),但是如果你使用 query_string 查询,你不需要这样做

AND timestamp:[2015-05-27T00:00:00.128Z TO 2015-05-27T23:59:59.128Z]"
                                       ^  ^
                                       |  |
                                   remove these