Elasticsearch解析日期字段的格式不同

时间:2020-08-11 06:00:00

标签: elasticsearch kibana

我在ES7.8中以日期格式“ yyyy-MM-dd”创建索引

"mappings": {
    "_doc": {
      "properties": {
        "BaseLine": {
          "type": "date",
          "format": "yyyy-MM-dd"
        },

但是,当我单击地图上的“基线”字段时,在Filter上传递的实际值为yyyy-MM-dd00:00:00.000Z。

谁能建议我如何在过滤器中获取正确的日期格式“ yyyy-MM-dd”?

谢谢。

enter image description here

这是来自请求的示例文档

“点击数”:[ { “ _index”:“ program_b”, “ _type”:“ _doc”, “ _id”:“ 2137SD19.1”, “ _score”:0.0, “_资源” : { “ SiteID”:2137, “ BaseLine”:“ 2020-04-26”, “ uk”:“ 2137SD19.1” } }

1 个答案:

答案 0 :(得分:1)

"format": "yyyy-MM-dd"在映射中的作用只是告诉ES您的日期值将以哪种格式显示在源文档中。

如您所见,您的源文档包含"BaseLine" : "2020-04-26",其格式完全符合ES要求的格式。当您为文档建立索引时,ES会正确解析您的BaseLine日期字段,并为代表该时间点的长值建立索引。

您在工具提示中看到的值(即Apr 26, 2020)就是Kibana如何设置日期格式,您可以根据需要在“堆栈管理>高级设置”中更改日期。

最后,您在过滤器(即2020-04-26T00:00:00.000Z)中看到的过滤器值是BaseLine字段的ISO8601表示形式以及查询过滤器中使用的ES。

据我所知,一切看起来都是正确的。