我已在模板中指定了映射信息,如下所示:
"createdDate": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis||EEE MMM dd HH:mm:ss Z YYYY||dd MMM yyyy HH:mm:ss zzz"
},
"expirationDate": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis||EEE MMM dd HH:mm:ss Z YYYY||dd MMM yyyy HH:mm:ss zzz"
}
当我尝试将文档插入索引时,出现以下错误。
PUT my_index/MyDocType/5c7ab034-5de3-4401-8b46-7f8158618b68
{
"uuid": "5c7ab034-5de3-4401-8b46-7f8158618b68",
"createdDate": "15 Apr 2019 14:10:10 EDT",
"expirationDate": "10 Oct 2019 00:00:00 EDT"
}
这是我遇到的错误:
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "failed to parse [createdDate]"
}
],
"type": "mapper_parsing_exception",
"reason": "failed to parse [createdDate]",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Invalid format: \"15 Apr 2019 14:10:10 EDT\" is malformed at \" Apr 2019 14:10:10 EDT\""
}
},
"status": 400
}
我可以使用以下命令解析字符串值,而不会出现任何问题。不确定为什么Elastic在解析日期字符串的月份部分时会抱怨!!
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss zzz");
答案 0 :(得分:1)
如本https://github.com/vitaly-t/pg-promise-demo中所述,以下是z
和Z
的含义
z time zone text Pacific Standard Time; PST
Z time zone offset/id zone -0800; -08:00; America/Los_Angeles
您的格式似乎无效乔达link
将正确的格式dd MMM yyyy HH:mm:ss z
添加到映射中,如下所述,应该可以解决您的问题。
{
"createdDate":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis||EEE MMM dd HH:mm:ss Z YYYY||dd MMM yyyy HH:mm:ss zzz||dd MMM yyyy HH:mm:ss z"
}
}
希望有帮助!