一。时间类型的本质
首先json是没有时间类型的,对于es来说,时间类型的标示可以是下面三种情况
1.一个时间格式的字符串,如:"2014-11-27T08:05:32Z","2015-01-01" or "2015/01/01
12:10:30". 具体能使用什么格式可以通过自定定义时间类型的format属性配置。
2.一个长整形,代表从新纪元到现在的毫秒数,默认
3.一个整形,代表从新纪元到现在的秒数,这个需要创建时在format属性指定
但是内部es的其实都是转换到utc时间并作为一个长整形保存的。
二。多种格式的支持
1.时间格式的指定默认是"strict_date_optional_time||epoch_millis" 及:2014-11-27T08:05:32Z||长整形到毫秒
2.我们可以用||符号指定多种格式,如下
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/6.1/date.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.1/mapping-date-format.html#strict-date-time
本文介绍了Elasticsearch中时间类型的本质及其支持的多种格式。包括字符串格式的时间戳、长整型和整型时间表示方法,并详细解释了如何通过自定义格式属性来支持不同的日期时间格式。
2万+

被折叠的 条评论
为什么被折叠?



