首页 > 解决方案 > Elasticsearch (7.3) 日期映射解析失败

问题描述

我已将 elasticsearch 从 6.2.3 升级到 7.3

ES 中的映射如下所示:

"completion_date" : {
          "type" : "date",
          "store" : true,
          "format" : "yyyy-MM-dd'T'HH:mm:ss.SSSZ||yyyy-MM-dd'T'HH:mm:ssZ||yyyy-MM-dd"
        }

失败并出现以下异常:

Elasticsearch 异常 [type=mapper_parsing_exception, reason=failed to parse field [completion_date] in document ....4181937'。字段值预览:'2018-01-23T16:40:00.000Z']

你能帮我解释一下为什么会这样,我该如何解决?

标签: dateelasticsearchindexinglucene

解决方案


我同意你的观点,我试过了,发现它在 ES6 中有效,但在 ES7 中无效。但是,如果您输入以下格式,它似乎可以工作:

"format" : "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

但我不认为这是最好的解决方案,因为它没有在文档中这样指定(也许他们稍后会更新它)。对我来说,最好的解决方案是使用文档中指定的名称调用格式:es doc

所以你的映射应该是这样的:

"completion_date" : {
      "type" : "date",
      "store" : true,
      "format" : "strict_date_time||strict_date_time_no_millis||strict_date"
    }

希望有帮助!


推荐阅读