Elasticsearch 查询大于日期

Yuk*_*dev 8 elasticsearch

我创建一个索引,它保存两个日期(D1,D2),之后我想查询这个时刻是否在 D1 和 D2 之间,所以我查询:

startdate <= "2019-08-22T03:55:47.165Z" AND endate>= "2019-08-22T03:55:47.165Z"
Run Code Online (Sandbox Code Playgroud)

它成功返回了我想要的数据,因此我尝试在开发工具中再次执行相同的操作:

GET i_want_get_date/_search
{
  "query":{
    "query_string":{
      "query":"startdate<= \"2019-08-22T03:55:47.165Z\" AND enddate>= \"2019-08-22T03:55:47.165Z\""
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

问题是:

它无法搜索回任何结果,查询无法使用此方法比较日期

有什么建议吗?谢谢!

=================================================== =========

感谢Val回答问题,我使用一个非常精简的查询来执行相同的功能,我更改了一点查询语法以使其工作:

GET i_want_get_date/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "startdate":{
              "lte":"2019-08-22T03:55:47.165Z"
            }
          }
        },
        {
          "range": {
            "enddate":{
              "gte":"2019-08-22T03:55:47.165Z"
            }
          }
        }
      ]
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

Val*_*Val 11

我建议改用两个range查询

GET i_want_get_date/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "startdate": {
              "gte": "2019-08-21T03:55:47.165Z"
            }
          }
        },
        {
          "range": {
            "enddate": {
              "lt": "2019-08-22T03:55:47.165Z"
            }
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)