【问题标题】:ElasticSearch Date Range query returning all valuesElasticSearch 日期范围查询返回所有值
【发布时间】:2017-09-25 10:51:13
【问题描述】:

我使用下面的映射创建了一个索引。

索引映射:

{
  "mappings": {
    "document": {
        "properties": {
            "doc_date": {
          "type": "date" ,
          "format": "yyyy/MM/dd"
        }
      }
    }
  }
}

我索引了两条记录。如下所示。

记录:

{
"doc_date": "2017/06/10",
"Record":"A"
}
{
"doc_date": "2017/05/10",
"Record":"D"
}

我想选择日期大于或等于 2017/06/10 的文档。

查询:

{
    "query": {
        "range" : {
            "doc_date" : {
                "lte": "2017/06/10",
                "format": "yyyy/MM/dd"
            }
        }
    }
}

但是上面的查询返回了索引中的所有文档。

ElasticSearch 版本:5.0.2

【问题讨论】:

  • 你应该使用gte,而不是lte

标签: elasticsearch


【解决方案1】:

lte 表示小于或等于日期。因此,您将获得 2017/06/10 之前的所有日期以及日期本身。您必须使用gte,这意味着大于或等于。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多