elasticsearch Elasticsearch范围查询未按预期工作,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch Elasticsearch范围查询未按预期工作,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch Elasticsearch范围查询未按预期工作

elasticsearch Elasticsearch范围查询未按预期工作,elasticsearch,kibana,elasticsearch,Kibana,我试图通过应用日期类型字段上的范围(在本例中为“timeA”)来获取数据 我的问题是: { "query": { "bool": { "must": [ { "match_phrase": { "name": "A" } }, { "range": { "timeA": { "lte": 9

我试图通过应用日期类型字段上的范围(在本例中为“timeA”)来获取数据

我的问题是:

{
  "query": {
    "bool": {
      "must": [
        {
          "match_phrase": {
            "name": "A"
          }
        },
        {
          "range": {
            "timeA": {
              "lte": 9999
            }
          }
        }
      ]
    }
  }
}
我没有任何少于1558891800000的数据

因此,预期输出必须为:

  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}
但我得到的实际输出是:

{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1.287682,
    "hits": [
      {
        "_index": "checktimestamp",
        "_type": "doc",
        "_id": "AWr4sdJv_fFf5JZrQhXl",
        "_score": 1.287682,
        "_source": {
          "name": "A",
          "timeA": 1558899000000,
          "timeLocal": "27-1AM"
        }
      }
    ]
  }
}
时间字段的类型为日期。 我的elasticsearch版本是5.6.10,Kibana版本是5.6.10

请说明这里的问题是什么,以及如何解决。
提前感谢。

Elastic将4位数字解析为一年,这意味着它匹配年份小于或等于9999的文档,我假设这是您的所有数据

为了避免这种情况,您需要在映射中为日期字段定义一个严格的字段,这将允许潜入“yyy”格式。
或者,在这些查询中不要使用少于5位数的数字

谢谢Tom,现在我明白了为什么它没有返回预期输出。