Elasticsearch自带的数据类型是Lucene索引的依据,也是我们做手动映射调整的依据。
映射中主要就是针对字段设置类型以及类型相关参数。即主要是针对数据的格式限制与搜索时的对应类型的匹配方式
比较常用的基本类型的:
常用(5.x版本被废弃),替换为text,keyword常用可能存在不全,可留言补充
主要区别在于分词。
| text | keyword |
|---|---|
| 分词后进行匹配 | 直接进行完全匹配 |
| 得到关联的内容 | 只能获得完全匹配的内容 |
储存位数与精度区别:
| 类型 | 描述 |
|---|---|
| byte | 8位存储 |
| short | 16位存储 |
| integer | 32位存储 |
| long | 64位存储 |
| float | 32位单精度存储 |
| double | 64位双精度存储 |
统一入数据时的格式不要带有UTC等字母后缀,如何存在跨时区那就一定要带有时区后缀。即统一入数据格式。不包含对应格式,就会出现数据无法录入情况。仅允许存入true与false
没有具体的类型限制,但要求内部存储的类型必须一致。所以使用map存储时,注意value的类型一致
会在进行字段匹配查询中单独匹配,如字段text:['123','456']进行匹配text字段时,text:123或text:456将会命中。
并且会转换为数组类型,但是mapping中的类型不受影响。
由于对象描述比较复杂,我发现有一篇博客不错,可以去看一下。跳转