elasticsearch - Elasticsearch查询大于日期

标签 elasticsearch

我创建了一个索引,它为某些内容保存了两个日期(D1,D2),此后,我想查询该日期是否在D1和D2之间,所以我查询:

startdate <= "2019-08-22T03:55:47.165Z" AND endate>= "2019-08-22T03:55:47.165Z"

它成功返回了所需的数据,因此我尝试使用Dev工具再次执行以下操作:
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\""
    }
  }
}


问题是:

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

有什么建议吗?谢谢!

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

谢谢 Val 回答了这个问题,我使用了一个更 slim 的查询来执行相同的功能,我更改了一点查询语法以使其起作用:
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"
            }
          }
        }
      ]
    }
  }
}

最佳答案

我建议改用两个 range queries

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

关于elasticsearch - Elasticsearch查询大于日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57602030/

相关文章:

elasticsearch 阻止使用 PostMan 插入数据

elasticsearch - Elasticsearch跨多个字段进行搜索,包括嵌套

mongodb - ElasticSearch是否具有与mongodb相同的_id功能?

mysql - Elasticsearch如何模糊匹配邮箱或电话?

elasticsearch - Elasticsearch 没有为[geo_bounding_box]注册查询

elasticsearch - 询问有关本体和graphdb的问题

elasticsearch - Kibana 服务器尚未准备好甚至启动

elasticsearch - 我怎样才能只检索匹配的 child ?

mysql - 可以将 SQL 转换为 ElasticSearch 吗?

elasticsearch - 通过模糊和 ngram 突出显示