ES支持的数据类型
es支持多种数据类型,以满足不同的数据存储和检索需求。以下是Elasticsearch支持的主要数据类型:
1)核心数据类型
①文本类型(Text)
用途:用于全文搜索的文本字段,如电子邮件正文或产品描述。
特点:ES会对文本内容进行分词处理,将字符串转换为单个术语的列表,支持全文搜索和模糊查询。但通常不用于排序或聚合。
②关键字类型(Keyword)
用途:适用于精确匹配的字段,如名称、标签、ID、电子邮件地址等。
特点:不会对字段内容进行分词处理,直接构建倒排索引,适合精确查询、过滤、排序和聚合操作。
③数值类型
- 整数类型:包括byte(带符号的8位整数)、short(带符号的16位整数)、integer(带符号的32位整数)、long(带符号的64位整数)。
- 浮点类型:包括float(32位单精度IEEE 754浮点数)、double(64位双精度IEEE 754浮点数)、half_float(16位半精度IEEE 754浮点数)、scaled_float(缩放类型的浮点数,可以通过scaling_factor参数控制精度)。
- 特点:数值类型适用于存储数值数据,根据具体需求选择合适的类型可以优化存储和查询效率。
④日期类型(Date)
用途:用于存储日期和时间信息
支持的格式:包括格式化的日期字符串(如yyyy-MM-dd)、毫秒级的长整型(表示从1970年1月1日0点到现在的毫秒数)、秒级别的整型(表示从1970年1月1日0点到现在的秒数)等。
特点:便于时间序列数据的检索和分析。
⑤布尔类型(Boolean)
用途:用于表示逻辑判断的字段,如商品是否上架、数据是否失效等。
特点:仅支持true和false两个值。
⑥二进制类型(Binary)
用途:用于存储二进制数据,如图像、文件和视频等。
特点:以Base64编码格式存储,默认不存储且不可搜索。
2)复合数据类型
①对象类型(Object)
用途:用于存储复杂的数据结构,如嵌套的对象。
特点:可以包含多个字段,每个字段可以是不同的数据类型。
②数组类型(Array)
用途:用于存储值列表。
特点:在Elasticsearch中,数组不需要专门的字段数据类型,任何字段都可以默认包含零个或多个值,但数组中的所有值必须属于相同的字段类型。
③嵌套类型(Nested)
用途:用于存储数组中的对象,允许对数组中的每个对象进行独立的查询。
特点:与对象类型不同,嵌套类型会为数组中的每个对象创建独立的索引。
3)地理数据类型
①地理坐标类型(Geo-point)
用途:用于存储地理坐标点,如经纬度。
特点:支持地理空间查询和分析,如计算距离、判断位置关系等。
②地理形状类型(Geo-shape)
用途:用于存储复杂的地理形状,如多边形、圆形等。
特点:同样支持地理空间查询和分析。
4)专门数据类型
①IP类型(IP)
用途:用于存储IPv4或IPv6地址。
特点:支持对IP地址进行过滤、排序和聚合等操作。
②完成类型(Completion)
用途:用于提供自动补全建议。
特点:通常用于搜索框等需要自动补全功能的场景。
③令牌计数类型(Token Count)
用途:用于统计文本字段中的令牌数量。
特点:可以用于分析文本内容的丰富程度。
④其他专门类型
包括mapper-murmur3(用于计算值的哈希值并存储在索引中)、mapper-annotated-text(用于索引包含特殊标记的文本)、percolator(用于接受来自查询DSL的查询)、join(用于在同一索引的文档中创建父/子关系)、rank_feature(用于记录数字特征以提高查询时的命中率)、dense_vector和sparse_vector(用于记录浮点值的密集向量和稀疏向量)、search-as-you-type(一种优化后的文本字段类型,适用于即时搜索场景)、alias(用于为现有字段定义别名)、flattened(允许将整个JSON对象映射为单个字段,有助于防止映射爆炸)等。
5)范围类型
用途:用于表示数值、日期或IP地址的范围。
支持的类型:包括integer_range、float_range、long_range、double_range、date_range、ip_range等。
特点:可以使用gte、gt、lt、lte等运算符来定义范围,支持范围查询。
6)多字段类型
用途:为了满足不同的查询需求,有时需要对同一个字段以不同的方式进行索引。
实现方式:通过fields参数为字段定义多个子字段,每个子字段可以是不同的数据类型或分析器。
总结来看,Elasticsearch支持的数据类型非常丰富,几乎涵盖了所有常见的数据类型。这些数据类型为Elasticsearch提供了强大的数据建模能力,使其能够高效地处理和分析各种类型的数据。
本文来自博客园,作者:it-小林,转载请注明原文链接:https://www.cnblogs.com/linruitao/p/18820452

浙公网安备 33010602011771号