Datetime 弹性搜索日期格式
我试图将以下JSON输入发送到elasticsearch,但得到了一个解析器错误 这是JSON输入Datetime 弹性搜索日期格式,datetime,elasticsearch,timestamp,datetime-format,Datetime,elasticsearch,Timestamp,Datetime Format,我试图将以下JSON输入发送到elasticsearch,但得到了一个解析器错误 这是JSON输入 { "chassisNumber": "654321", "position": "40.480143, -3.688960", "issue": "Position", "timestamp": "2016-07-15T15:29:50+02:00[Europe/Paris]" } 索引定义 { "mappings":{ "vehicle":{
{
"chassisNumber": "654321",
"position": "40.480143, -3.688960",
"issue": "Position",
"timestamp": "2016-07-15T15:29:50+02:00[Europe/Paris]"
}
索引定义
{
"mappings":{
"vehicle":{
"properties":{
"vehicle":{
"type":"string"
},
"position":{
"type": "geo_point"
},
"issue":{
"type":"string"
},
"timestamp":{
"type":"date",
"format":"YYYY-MM-DD'T'HH:mm:ssZ"
}
}
}
}
}
以及与“时间戳”字段相关联的错误
我尝试了几种约会方式,但没有一种成功。有人能帮我定义正确的格式来解析elasticsearch中的“timestamp”字段吗
谢谢 正如您在映射中看到的,您的字段
时间戳
映射为日期
类型,格式为YYYY-MM-DD'T'HH:MM:ssZ
。因此,Elasticsearch希望timestamp
字段以相同的格式传递。您传递的数据是2016-07-15T15:29:50+02:00[Europe/Paris]
,其中包括[Europe/Paris]
区域数据之后的数据,该区域数据未在映射中给出,且不遵循Elasticsearch支持的默认ISO 8601
格式(更多数据可用)
您可以阅读有关Elasticsearch支持的默认日期格式的更多信息
因此,要么您必须删除传递给Elasticsearch的额外数据,并根据映射保留它
{
"chassisNumber": "654321",
"position": "40.480143, -3.688960",
"issue": "Position",
"timestamp": "2016-07-15T15:29:50+02:00"
}
或者将映射更改为遵循定义的joda语法的自定义日期格式。在您的情况下,如果需要文字区域,您也必须使用
z
。您需要删除[Europe/Paris]
部分,因为+02:00
就足够了。
{
"chassisNumber": "654321",
"position": "40.480143, -3.688960",
"issue": "Position",
"timestamp": "2016-07-15T15:29:50+02:00"
}