ElasticSearch基础属性之date类型

本文转自:[link]https://blog.csdn.net/lijingjingchn/article/details/100576088
一、date是es中的基础数据类型,在es内部其实存储的时间戳,但是我们经常会把时间转成字符串存储,那么数据是怎么识别的呢。注意:官网建议时间按照长整型存储,节省一定的空间。
如果我们在mapping设置字段的typedate,则写入数据的格式是按照默认的方式识别-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"
        }
      }
    }
  }
}

一般我们写入是什么格式,展示的时候也是什么格式

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值