我正在尝试将数据重新索引到正确的日期格式,但是,在以'Thu Jan 01 02:00:00 SAST 1970'格式解析日期字段时遇到MapperParsingException 。我使用了dateOptionalTime映射,我猜错了。
Elasticsearch Date Format引用中的内置格式似乎都不符合要求。这是我必须专门定制的东西还是可以使用内置的日期格式版本?
编辑1:映射
{
"mappings": {
"users": {
"properties": {
"creationdate": {
"type": "date",
"format": "dateOptionalTime"
},
"email": {
"type": "string"
},
"firstlogin": {
"type": "boolean"
},
"firstname": {
"type": "string"
},
"lastloggedin": {
"type": "date",
"format": "dateOptionalTime"
},
"lastname": {
"type": "string"
},
"lastprofileupdate": {
"type": "date",
"format": "dateOptionalTime"
},
"userid": {
"type": "string"
},
"username": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
},
"copy_to": [
"username.raw"
]
}
}
}
}
}
答案 0 :(得分:1)
如您所知,您需要使用custom date format。
不幸的是,虽然上面的例子使用了timezone names,但“ z ”,这是JODA不支持的。
如果您可以更改时区格式以使用zone id 您可以使用自定义格式,如下所示:
Example Date: "Thu Jan 10 02:00:00 Africa/Johannesburg 1970"
lastloggedin" : {
"type": "date",
"format" : "EEE MMM dd HH:mm:ss ZZZ y"
},
答案 1 :(得分:0)
尝试使用此映射
{
"mappings": {
"users": {
"properties": {
"creationdate": {
"type": "date",
"format": "E MMM d H:m:s z Y"
},
"email": {
"type": "string"
},
"firstlogin": {
"type": "boolean"
},
"firstname": {
"type": "string"
},
"lastloggedin": {
"type": "date",
"format": "E MMM d H:m:s z Y"
},
"lastname": {
"type": "string"
},
"lastprofileupdate": {
"type": "date",
"format": "E MMM d H:m:s z Y"
},
"userid": {
"type": "string"
},
"username": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
},
"copy_to": [
"username.raw"
]
}
}
}
}
}