ElasticSearch基础属性之date类型
一、date是es中的基础数据类型,在es内部其实存储的时间戳,但是我们经常会把时间转成字符串存储,那么数据是怎么识别的呢。如果我们在mapping设置字段的type是date,则写入数据的格式是按照默认的方式识别-strict_date_optional_time||epoch_millis,这表明只接受符合strict_date_optional_time格式的字符串值,或者long型数字,否
本文转自:[link]https://blog.csdn.net/lijingjingchn/article/details/100576088
一、date是es中的基础数据类型,在es内部其实存储的时间戳,但是我们经常会把时间转成字符串存储,那么数据是怎么识别的呢。注意:官网建议时间按照长整型存储,节省一定的空间。
如果我们在mapping
设置字段的type
是date
,则写入数据的格式是按照默认的方式识别-strict_date_optional_time||epoch_millis
,这表明只接受符合strict_date_optional_time
格式的字符串值,或者long
型数字,否则会写入失败。经过测试strict_date_optional_time
是如下其中一种格式都可以,并不支持我们常用的格式 yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- yyyy/MM/dd
- yyyy-MM-ddTHH:mm:ss
- yyyy/MM/dd HH:mm:ss
- yyyy-MM-ddTHH:mm:ss.SSS
所以如果我们写入上面的格式的字符串,es默认会把该字段设置为date
类型
二、但是能不能支持我们常用的时间格式呢?答案是当然可以,需要在mapping设置字段时候加上format
参数,用于指定插入的时间格式,但是如果指定固定的格式,则使用其他格式的时候将会失败,但是也是可以多种格式组合在一起。
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"updated_date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
一般我们写入是什么格式,展示的时候也是什么格式
更多推荐
所有评论(0)