首页 归档 关于 文件 Github
×

ElasticSearch的数据类型

2022-03-03 13:26:44
ElasticSearch
  • ElasticSearch
本文总阅读量(次):
本文字数统计(字):1.2k
本文阅读时长(分):4

说明

ElasticSearch中每个field都要精确对应一个数据类型.
本文都是基于ElasticSearch 6.8.1进行的, 不同的版本可能存在不支持的情况, 还请注意.
mapping
mapping-types

核心基本类型

1.text类型
2.keyword类型
3.数字类型
4.日期类型
5.布尔类型
6.二进制类型
7.范围类型
8.数组类型
9.对象类型
10.嵌套类型
11.IP类型
12.Token count类型
13.Geo类型

字符串类型(text、keyword)

示例
ElasticSearch 5.X之后的字段类型不再支持string,由 text 或 keyword 取代。 如果仍使用string,会报错。

文本类型(text)

说明:
text的内容会被分词, 可以设置是否需要存储: “index”: “true|false”.
text类型的字段不能用于排序, 也很少用于聚合.
注意:
当一个字段需要用于全文搜索(会被分词), 比如商品名称、商品描述等信息, 就应该使用text类型.

关键字类型(keyword)

说明:
keyword的内容不会被分词, 可以设置是否需要存储: “index”: “true|false”.
keyword类型的字段可用于过滤、排序、聚合等.
注意:
当一个字段需要按照精确值进行操作时, 就应该使用keyword类型.

数字数据类型

示例
数字类型有如下分类:

1
2
3
4
5
6
7
8
byte:	        有符号的8位整数,  范围: [-128 ~ 127]
short 有符号的16位整数, 范围: [-32768 ~ 32767]
integer 有符号的32位整数, 范围: [-2^31 ~ 2^31-1]
long 有符号的64位整数, 范围: [-2^63 ~ 2^63-1]
float 32位单精度浮点数
double 64位双精度浮点数
half_float 16位半精度IEEE 754浮点类型
scaled_float 缩放类型的的浮点数, 比如price字段只需精确到分, 57.34缩放因子为100, 存储结果为5734

说明:
字段的长度越短, 索引和搜索的效率越高
尽可能选择范围小的数据类型, 优先考虑使用带缩放因子的浮点类型

日期类型(date)

示例
在ES中, 日期默认格式: strict_date_optional_time||epoch_millis
包含格式化日期的字符串, “2018-10-01”, 或”2022-03-03 15:47:47”,可代表时间毫秒数的长整型数字,也可代表时间秒数的整数

说明:
如果时区未指定, 日期将被转换为UTC格式, 但存储的却是长整型的毫秒值.
多个格式使用双竖线||分隔, 每个格式都会被依次尝试, 直到找到匹配的.第一个格式用于将时间毫秒值转换为对应格式的字符串.
可自定义日期格式:yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis

布尔类型(boolean)

说明:可以接受表示真、假的字符串或数字
真值: true, “true”, “on”, “yes”, “1”…
假值: false, “false”, “off”, “no”, “0”, “”(空字符串), 0.0, 0

二进制类型(binary)

二进制类型是Base64编码字符串的二进制值, 不以默认的方式存储, 且不能被搜索

说明:
有2个设置项:doc_values、store
① doc_values: 该字段是否需要存储到磁盘上, 方便以后用来排序、聚合或脚本查询. 接受true和false,默认为false;
① store: 该字段的值是否要和_source分开存储、检索, 意思是除了_source中, 是否要单独再存储一份. 接受true或false,默认为false;.
注意:
Base64编码的二进制值不能嵌入换行符\n, 逗号(0x2c)等符号.

范围类型(range)

示例
range类型支持以下几种:

1
2
3
4
5
6
integer_range           -2^31 ~ 2^31-1
long_range -2^63 ~ 2^63-1
float_range 32位单精度浮点型
double_range 64位双精度浮点型
date_range 64位整数, 毫秒计时
ip_range IP值的范围, 支持IPV4和IPV6, 或者这两种同时存在

说明:小于是lt,小于等于是lte、大于是gt、大于等于是gte

复杂数据类型

对象类型(object)

示例
文档是分层的: 文档可以包含内部对象, 内部对象也可以包含内部对象;

嵌套类型(nested)

示例
嵌套类型是对象数据类型的一个特例, 可以让array类型的对象被独立索引和搜索,用nested类型解决object类型的不足

说明:
如果需要对以最对象进行索引, 且保留数组中每个对象的独立性, 就应该使用嵌套数据类型.
嵌套对象实质是将每个对象分离出来, 作为隐藏文档进行索引.

专门数据类型

IP类型(IPv4、IPv6)

IP类型的字段用于存储IPv4或IPv6的地址, 本质上是一个长整型字段.

1
2
3
4
5
6
7
8
9
10
11
{
"mappings": {
"customer": {
"properties": {
"ip_addr": {
"type": "ip"
}
}
}
}
}

更多类型

更多TYPE类型查询详见官方文档

完
SpringBoot整合ElasticSearch-v6.8.1的封装 - 1.配置类
ElasticSearch下的Kibana的使用 - 别名(视图)

本文标题:ElasticSearch的数据类型

文章作者:十二

发布时间:2022-03-03 13:26:44

最后更新:2022-03-04 16:22:18

原始链接:https://www.zhuqiaolun.com/2022/03/1646285204846/1646285204846/

许可协议:署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

头像

十二

我想起那天夕阳下的奔跑,那是我逝去的青春。

分类

  • Blog4
  • ElasticSearch13
  • Freemarker2
  • Git2
  • Go-FastDfs2
  • IDEA2
  • J-Package6
  • J-Tools21
  • Java2
  • JavaFx3
  • Kafka4
  • Linux2
  • Logger5
  • Maven5
  • MyBatis6
  • MyCat3
  • MySql2
  • Nginx5
  • OceanBase1
  • RabbitMq4
  • Redis6
  • SVN1
  • SpringBoot11
  • Tomcat6
  • WebService2
  • Windows2
  • kubernetes10

归档

  • 二月 20251
  • 十二月 20244
  • 八月 202416
  • 六月 20241
  • 九月 20231
  • 八月 20231
  • 七月 20232
  • 八月 20222
  • 三月 202214
  • 二月 20224
  • 十一月 20211
  • 七月 20215
  • 六月 20213
  • 五月 20213
  • 四月 20211
  • 三月 202116
  • 二月 20212
  • 一月 20211
  • 十一月 202014
  • 十月 20201
  • 九月 202014
  • 八月 20205
  • 七月 20204
  • 六月 20208
  • 五月 20208

作品

我的微信 我的文件

网站信息

本站运行时间统计: 载入中...
本站文章字数统计:96.9k
本站文章数量统计:132
© 2025 十二  |  鄂ICP备18019781号-1  |  鄂公网安备42118202000044号
驱动于 Hexo  | 主题 antiquity  |  不蒜子告之 阁下是第个访客
首页 归档 关于 文件 Github