Elasticsearch (7.3) 日期映射解析失败

Elasticsearch (7.3) date mapping parsing failures

我已经将 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,原因=无法解析文档 ....4181937 中的字段 [completion_date]。字段值预览:'2018-01-23T16:40:00.000Z']

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

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

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

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

因此您的映射应如下所示:

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

希望对您有所帮助!