Elasticsearch-⽇期类型
Elasticsearch-⽇期类型
date类型⽤于存储⽇期和时间。它是这样运作的:通常提供⼀个表⽰⽇期的字符串,例如2019-06-25T22:47。然后,ES解析这个字符串,然后将其作为long的数值存⼊Lucene的索引。该long型数值是从1970年1⽉1⽇00:00:00 UTC(UNIX纪元)到所提供的时间之间已经过去的毫秒数。
当搜索⽂档的时候,仍然提供date的字符串,在后台ES将这些字符串解析并按照数值来处理。这样做的原因是和字符串相⽐,数值在存储和处理时更快。
date字符串的数据格式是通过format选项来定义的,ES默认解析ISO 8601的时间戳。
ISO8601是⼀种交流⽇期和时间相关数据的国际标准,由于RFC 3339⽽⼴泛运⽤于时间戳。ISO 8601⽇期张下边这样:
2019-06-25T22:51:45.453-03:00
包含了亚秒和时区。
unix时间戳转换日期格式使⽤format选项来指定⽇期格式的时候,有以下两种选择
(1) 使⽤预定义的时间格式。例如,date格式解析2019-06-25这样的⽇期。
(2) 设置⾃⼰定制的格式。可以指定时间戳所遵循的模式。例如,指定MMMYYYY来解析 jun 2019这样的⽇期。
使⽤定制的时间格式
定制版:’MMM DD YYYY’
在索引music的album类型下,添加新的属性映射,类型为date,format⾃定义
curl -XPUT 'localhost:9200/music/_mapping/album' -d '{
"album":{
"properties":{
"format_date":{
"type":"date",
"format":"MMM DD YYYY"
}
}
}
}'
新增⼀条数据
curl -XPUT 'localhost:9200/music/album/4' -d '{
"name":"⼗⼀⽉的肖邦",
"date":"2005-11-24T22:20",
"format_date":"Nov 24 2005"
}'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论