use*_*423 7 lucene datetime elasticsearch
我想了解ES如何在其索引内部存储日期值.它转换为UTC吗?
我有一个日期类型的字段"t".这是映射:
"t": { "type" : "date" },
Run Code Online (Sandbox Code Playgroud)
现在,当我向ES插入/添加文档时,它如何存储在索引中.
"t":"1427700477165"(从Date.now()函数生成的毫秒数).ES是否在UTC中识别其纪元时间并按原样存储?
"t":"2015-03-29T23:59:59"(我相应地调整了映射日期格式) - ES如何存储它.如果它转换为UTC,它如何知道这个日期是什么时区并将其转换为UTC?ES是否从运行的计算机上获取默认时区?
谢谢!
Oll*_*ank 14
在内部(在索引内),Elasticsearch将所有日期存储为时期格式的数字 - 即自1970年1月1日00:00:00 GMT以来的毫秒数.
但是,默认情况下,Elasticsearch也会存储您的原始JSON发布消息 - 因此在返回时_source您将看到发布到Elasticsearch的任何内容.
为了能够将日期字符串导入epoch格式,您需要在映射中指定格式,例如预定义的日期格式:
"t": { "type" : "date", "format" : "basic_date_time" }
Run Code Online (Sandbox Code Playgroud)
对yyyyMMdd'T'HHmmss.SSSZ.
或指定自定义日期格式:
"t": { "type" : "date", "format" : "YYYY-MM-dd" }
Run Code Online (Sandbox Code Playgroud)
yyyy/MM/dd
HH:mm:ss||yyyy/MM/dd | 归档时间: |
|
| 查看次数: |
7994 次 |
| 最近记录: |