BoC*_*ode 6 elasticsearch elasticsearch-jdbc-river
我有以下日期的索引定义:
"handshaketime" : {"type":"date","format":"YYYY-MM-ddTHH:mm:ss.SSSZ"}
Run Code Online (Sandbox Code Playgroud)
实际日期是这种形式:
"handshaketime":"2015-04-07T10:43:03.000-07:00"
Run Code Online (Sandbox Code Playgroud)
我已经指定来自DB的日期具有上述格式,但elasticsearch仍然给我以下错误.
Caused by: org.elasticsearch.index.mapper.MapperParsingException: failed to
parse date field [2015-04-07T10:43:03.000-07:00], tried both date format
[YYYY-MM-dd HH:mm:ss], and timestamp number with locale []
Run Code Online (Sandbox Code Playgroud)
我正在使用带有jdbc_river 1.4.0.10的elasticsearch 1.4.4.
请告诉我发生了什么事.
在尝试修复此错误时,尽管@Vineeth提供了相同的结果,但我仍然遇到了相同的结果.我指出他,由于某种原因,ES没有显示我们提供的格式,而是一遍又一遍地给出相同的错误.
最后,我遇到了一篇文章,描述了删除ES中的所有索引并重新提交我们的索引/映射文档(又称清理).瞧!它有效,事实上,如果我只是给出以下内容它是有效的:
"handshaketime":{"type":"date", "format": "dateOptionalTime"}
Run Code Online (Sandbox Code Playgroud)
甚至不是我和@Vineeth讨论的自定义格式!!
因此,如果您正在努力解决此问题,请确保ES中没有可能阻止您索引新文档的索引.
感谢您试图对此问题进行排序@Vineeth.
您必须按如下方式给出 - T 应该有单引号,因为它不是时间标识符。
{"type":"date","format":"YYYY-MM-dd'T'HH:mm:ss.SSSZ"}
Run Code Online (Sandbox Code Playgroud)
如果您使用 shell 脚本,则需要按如下方式给出 -
{"type":"date","format":"YYYY-MM-dd'"'T'"'HH:mm:ss.SSSZ"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15601 次 |
| 最近记录: |