Elasticsearch字段类型与类型区别

基础类型

Elasticsearch自带的数据类型是Lucene索引的依据,也是我们做手动映射调整的依据。
映射中主要就是针对字段设置类型以及类型相关参数。即主要是针对数据的格式限制与搜索时的对应类型的匹配方式

常用类型

比较常用的基本类型的:

  1. 字符串: string 常用(5.x版本被废弃),替换为text,keyword
  2. 数字: byte,short,integer,long,float,double
  3. 时间: date 常用
  4. 布尔(boolean): true,false
  5. 数组: array
  6. 对象: object

非常用类型

  1. 数字: half_float ,scaled_float
  2. 经纬度: geo_point
  3. 网络地址: ip
  4. 范围类型: long_range,integer_range,double_range,float_range,date_range,ip_range
  5. 二进制: binary

可能存在不全,可留言补充

类型解释

字符串类型text与keyword区别

主要区别在于分词。

textkeyword
分词后进行匹配直接进行完全匹配
得到关联的内容只能获得完全匹配的内容

数字类型

储存位数与精度区别:

类型描述
byte8位存储
short16位存储
integer32位存储
long64位存储
float32位单精度存储
double64位双精度存储

时间类型

  • ES中date类型会存在时区问题,解决方法是:统一入数据时的格式不要带有UTC等字母后缀,如何存在跨时区那就一定要带有时区后缀。即统一入数据格式。
  • data类型在入数据时存在格式校验,格式不对或在创建索引字段时指定的格式中不包含对应格式,就会出现数据无法录入情况。

布尔(boolean)

仅允许存入truefalse

数组

没有具体的类型限制,但要求内部存储的类型必须一致。所以使用map存储时,注意value的类型一致

在不是数组类型中存储数组

会在进行字段匹配查询中单独匹配,如字段text:['123','456']进行匹配text字段时,text:123text:456将会命中。
并且会转换为数组类型,但是mapping中的类型不受影响。

对象

由于对象描述比较复杂,我发现有一篇博客不错,可以去看一下。跳转

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘿嘿嘿1212

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值