数据类型
本文介绍了数据表中和多元索引中字段数据类型的映射关系,以及不同字段数据类型支持的附加属性和查询功能。
数据类型映射关系
多元索引的字段值来源于数据表中同名字段的值,两者的数据类型必须相匹配。多元索引字段数据类型与数据表中字段数据类型的匹配关系请参见下表。
表中的类型必须一一对应,否则数据会被当作脏数据丢弃,尤其是Geo-point和Nested拥有各自特定的格式。如果格式不匹配也会被当作脏数据丢弃,这将导致数据在表中能查询到,但是在多元索引中查询不到的情况。
多元索引中字段数据类型 | 数据表中字段数据类型 | 描述 |
Long | Integer | 64位长整型。 |
Double | Double | 64位双精度浮点数。 |
Boolean | Boolean | 布尔值。 |
Keyword | String | 不可分词字符串。 |
FuzzyKeyword | String | 支持高性能模糊查询的字符串。 |
Text | String | |
Date | Integer、String | 日期时间类型,支持自定义各种格式日期数据。 |
Geo-point | String | 位置点坐标信息,格式为 |
Vector | String | 向量类型,格式为Float32数组的字符串,数组长度与该字段的维度相等。例如向量字符串 |
String | 嵌套类型,例如 |
字段属性支持情况
多元索引字段还支持数组、虚拟列、高亮显示等附加属性。不同数据类型支持的附加属性不同,下表列出了不同附加属性适用的数据类型及使用说明。
属性 | 适用的数据类型 | 说明 |
数组 | Long、Double、Boolean、Keyword、FuzzyKeyword、Text、Date、Geo-point | 如需存储一系列相同类型的数据,请将字段设置为数组类型。 在写入数据时,必须按照JSON数组格式写入,例如 Nested类型和Vector类型本身就是数组,无需设置。 说明 Array和Nested的区别请参见Nested和Array对比。 |
虚拟列 | Long、Double、Keyword、FuzzyKeyword、Text、Date、Geo-point、Vector | 如需在不改变表格存储的存储结构及数据的情况下,实现新字段新类型的查询,请将字段设置为虚拟列。 |
日期格式 | Date | 使用日期类型时,需指定日期的格式。 |
分词 | Text | 如需实现全文检索,请为字段设置分词。 |
摘要与高亮 | Text | 如需在全文检索场景中高亮显示命中的查询词,请为字段开启摘要与高亮功能。 |
向量配置 | Vector | 使用向量字段时,需指定向量的度量算法和维度。 |
查询功能支持情况
各数据类型可用于的查询功能请参见下表。
“✓”表示支持,“×”表示不支持。
全匹配查询功能无需设置字段。
查询功能 | Long | Double | Boolean | Keyword | FuzzyKeyword | Text | Date | Geo-point | Nested | Vector |
✓ | ✓ | ✓ | ✓ | × | × | ✓ | × | × | × | |
✓ | ✓ | ✓ | ✓ | × | × | ✓ | × | × | × | |
✓ | ✓ | ✓ | ✓ | × | × | ✓ | × | × | × | |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
× | × | × | ✓ | ✓ | × | × | × | × | × | |
× | × | × | ✓ | ✓ | × | × | × | × | × | |
× | × | × | × | ✓ | × | × | × | × | × | |
× | × | × | × | × | ✓ | × | × | × | × | |
× | × | × | × | × | × | × | ✓ | × | × | |
× | × | × | × | × | × | × | × | ✓ | × | |
✓ | ✓ | × | ✓ | × | × | × | × | × | × | |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | × | ✓ | × | × | × | × | |
✓ | ✓ | ✓ | ✓ | × | ✓ | × | × | × | × | |
× | × | × | × | × | × | × | × | × | ✓ |