ElasticSearch日期范围查询不适用于自定义日期格式

时间:2019-02-27 07:15:57

标签: elasticsearch

我在Elasticsearch中创建了一个测试索引,其中包含2个日期字段的映射。这两个字段均具有自定义格式,如下所示。

{
  "test" : {
    "mappings" : {
      "_doc" : {
        "properties" : {
          "endTime" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSS"
          },
          "startTime" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSS"
          }
        }
      }
    }
  }
}

我为此示例测试索引加载的数据如下所示。

PUT test/_doc
{
  "startTime" : "2019-02-26 00:00:00.000",
  "endTime" : "2019-02-27 00:00:00.000"
}

我正在尝试根据范围进行查询,但是它不返回任何结果。我想念什么吗?我对范围的查询如下。

GET test/_doc/search
{
  "query": {
    "bool": {
      "must": {
        "range": {
          "endTime": {
            "gte": "2019-02-25 00:00:00.000",
            "format" : "yyyy-MM-dd HH:mm:ss.SSS"
          }
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您一切正常...除了搜索端点_search而非search

GET test/_doc/_search
              ^
              |
           add this

还要注意,您可能已经创建了一个ID为search的新文档,您可能想使用DELETE test/_doc/search删除它。