我想映射new Date().toString()
Thu Jul 03 19:17:19 CEST 2014
但ElasticSearch总是给我Errormessage Invalid format: "Thu Jul 03 19:17:19 CEST 2014" is malformed at "CEST 2014"
,我不知道出了什么问题。
这是测试类型的映射
{
"properties" : {
"postDate" : {
"type" : "date",
"format" : "EEE MMM dd HH:mm:ss z yyyy"
}
}
}
我认为它有正确的模式。我甚至试图增加' z'的数量,但是同样的错误。 那么有一个解决方案,或者我必须找到一个不同的approch。
答案 0 :(得分:4)
您将需要一种不同的方法,因为Elasticsearch使用的基础日期解析软件无法解析" CEST"或其他短格式时区,因为字符串不是唯一的。
从Elasticsearch文档中,您可以看到它使用Joda进行日期解析:
日期解析使用Joda。如果没有,则使用默认日期解析 指定的格式是ISODateTimeFormat.dateOptionalTimeParser。
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-date-format.html
然而Joda遇到了问题" CEST"和其他短格式时区:
http://comments.gmane.org/gmane.comp.java.joda-time.user/1385
有一些与此相关的讨论,但它更侧重于增加对CEST"的支持。对于logstash,因为它解析然后将数据加载到Elasticsearch: