zl程序教程

您现在的位置是:首页 >  工具

当前栏目

ES 常用数据类型

ES 常用 数据类型
2023-06-13 09:12:50 时间

1、ES常用数据类型

1.1 Numbers 数字类型

涉及到的类型很多,具体查阅文档 常用的有long,integer,short,double,float

1.2 Keywords 关键字类型 

 关键字分为以下几种:

(1)、keyword 用于索引结构化内容,如ID、电子邮件地址、主机名、状态码、邮政编码或标签。

说明:keyword不会被分词,keyword类型的字段只能通过精确值(exact_value)搜索到,常用于排序、过滤、聚合.

注:数据Id应该使用keyword而不是int或者string等类型,因为keyword会被索引,性能更好.

(2)、constant_keyword 对于始终包含相同值的关键字字段。

(3)、wildcard 用于非结构化机器生成的内容。通配符类型针对具有大值或高基数的字段进行了优化。

1.3 Dates 日期类型 

日期类型分为以下几种:

(1)、date 日期类型

自动识别机制如下几种

i、Json字符串格式为“2015-01-01”或“2015/01/01 12:10:30”,会被识别为date类型

ii、时间戳

其余注意事项请参考官网

(2)、date_nanos 纳秒类型

如果毫秒的精度不够,可以使用纳秒类型.

1.4  alias 索引别名类型 

1.5 binary 二进制类型

二进制类型接受二进制值作为Base64编码字符串。默认情况下,该字段不存储且不可搜索:

2、ES结构化数据类型

2.1、Range 范围类型

范围字段类型表示上限和下限之间的连续值范围。例如,一个范围可以表示10月份的任何日期,也可以表示0到9之间的任何整数。它们使用运算符gt或gte定义下限,使用运算符lt或lte定义上限。它们可以用于查询,并且对聚合的支持有限。唯一支持的聚合是直方图和基数。

其余几种范围类型,请参考官方文档

3、ES文本搜索类型

3.1、text fields 文本类型 常用于文本搜索,但是不能创建正排索引

索引全文值的字段,例如电子邮件正文或产品描述。对这些字段进行分析,即在索引之前,通过分析器将字符串转换为单个术语的列表。分析过程允许Elasticsearch在每个全文字段中搜索单个单词。文本字段不用于排序,很少用于聚合(尽管重要的文本聚合是一个显著的例外)。文本字段最适合非结构化但可读的内容。如果需要索引非结构化机器生成的内容,请参阅映射非结构化内容。

如果您需要索引结构化内容,如电子邮件地址、主机名、状态代码或标记,则可能更应该使用关键字字段。

文本类型分为两种:

(1)、text

全文内容(如电子邮件正文或产品描述)的传统字段类型。

说明:当字段被设置成文本类型后,字段会被分析(经过过滤器和分词器操作),会被分词,在生成倒排索引前,字段会被分词,分成一个个词项,一般无法用作排序和聚合操作.(text无法创建正排索引(用于排序和聚合),因为创建正排索引,会消耗大量的堆空间,尤其是加载高基数字段(经过去重之后,仍然有大量的重复的数据)时),字段一旦被加载到堆中,会在生命周期内保持在那里,同样加载数据也是非常的消耗资源,会产生延迟.  es默认不会给test创建正排索引

(2)、match_only_text

一种空间优化的文本变体,禁用评分,在需要位置的查询上执行速度较慢。它最适合索引日志消息。

其余关于文本类型的介绍,参考官方文档.

其余关于搜索的类型参看官方说明.

4、ES对象关系类型 Objects and relational types

4.1 object 对象类型

一般用于嵌套类型,如User和UserType的嵌套关系,前提是两者都是独立的结构.JSON文档本质上是分层的:文档可能包含内部对象,而内部对象本身也可能包含内部对象

4.2 nested 对象数组类型

一般用于报存对象数组类型,嵌套类型是对象数据类型的专门版本,允许以相互独立的方式对对象数组进行索引。

4.3 flattened

默认情况下,对象中的每个子字段分别映射和索引。如果子字段的名称或类型事先未知,则会动态映射它们。flattened 将整个对象映射为单个字段。给定一个对象,展平映射将解析出其叶值,并将其索引到一个字段中作为关键字。然后可以通过简单的查询和聚合来搜索对象的内容。但是也有限制,如只允许基本查询,不支持数值范围查询或高亮显示,具体参阅文档.

4.4 join 关联关系类型

连接数据类型是一个特殊字段,用于在相同索引的文档中创建父/子关系。关系部分定义了文档中一组可能的关系,每个关系都是父名称和子名称。

具体查看官方文档

5、ES特殊数据类型

5.1 geo_pointgeo_shapepointshape   4大类型 常用于地理位置搜索具体查看官方文档.

5.2 completion 配合Completion Suggester使用

自动完成建议类型,类似于百度搜索框输入一段文字后,会出现一个建议的下拉框内容,该类型就是实现这个功能用的.

完成提示器提供键入时自动完成/搜索功能。这是一种导航功能,用于在用户键入时引导用户找到相关结果,从而提高搜索精度。它不是为了拼写纠正,或者你指的是像术语或短语提示器这样的功能。理想情况下,自动完成功能应该与用户键入的速度一样快,以提供与用户已键入内容相关的即时反馈。因此,完成建议器针对速度进行了优化。该建议器使用能够快速查找的数据结构,但构建成本高,并且存储在内存中。

其余类型官方文档查阅 https://www.elastic.co/guide/en/elasticsearch/reference/8.3/mapping-types.html