赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. 多元索引
  6. 数据类型
  7. 字符串类型

字符串类型

  • 数据类型
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍字符串相关的三种类型Keyword、FuzzyKeyword和Text,以及如何在业务研发时选择合适的字符串类型。

背景信息

字符串是数据类系统中最常见的类型,基本在所有业务场景中均会使用到。在传统的关系型数据库中,字符串类型会被细分为定长、变长等多种不同的类型。

在表格存储中,字符串类型主要是String类型,类似于C++、Java等开发语言中的String类型。在多元索引中为了支持更丰富的功能,在功能层面对字符串做了进一步细分,字符串包括类似String的Keyword类型、用于模糊查询的FuzzyKeyword类型以及可以分词的用于全文检索的Text类型。

本文会介绍这三种不同字符串类型的关系、区别以及如何在业务场景中进行字符串类型选择。

表中和多元索引中类型映射

表中的字符串类型可直接在多元索引中映射为Keyword、FuzzyKeyword或Text类型。您也可以使用虚拟列功能将表中的Integer类型和Double类型在多元索引中映射为Keyword、FuzzyKeyword或Text类型。

表中数据类型

方式

多元索引中数据类型

String

直接使用

Keyword

FuzzyKeyword

Text

Integer

虚拟列

Keyword

FuzzyKeyword

Text

Double

虚拟列

Keyword

FuzzyKeyword

Text

类型介绍

Keyword

Keyword类型类似于数据库中的字符串类型,也类似于C++、Java等开发语言中的String类型,是最常用的字符串类型。

在功能上,主要支持精确查询、范围查询、通配符查询、前缀查询、存在性查询(空值查询)、排序和 GroupBy等聚合操作。其中,通配符查询和前缀查询在中大规模数据集(百万以上)场景中的性能会随着数据规模的增长而下降。

在业务场景中,如果不需要使用模糊查询或全文检索功能,则可以使用Keyword类型。如果需要使用排序、统计聚合等功能,则需要使用Keyword类型。

Text

Text类型类似于搜索引擎中的文本类型,支持多种分词,即系统会先将字符串类型切分成多个连续的词语,然后按照不同的词语去存储,主要用于全文检索场景。

Text类型的分词包括了多种分词,有些分词是简单的按字或者按字符切分,有些是按照语义去切分,不同分词方式适用于不同的业务场景。更多信息,请参见分词。

在业务场景中,如果需要使用全文检索功能,则需要使用Text类型。

FuzzyKeyword

FuzzyKeyword类型也是一种字符串类型,主要特点是支持高性能的通配符查询、前缀查询和后缀查询,在任意规模数据上均能保持比较好的查询性能,查询性能不会随着规模增大而下降。

在业务场景中,如果需要使用高性能(毫秒级)的通配符查询、前缀查询或后缀查询,则需要使用FuzzyKeyword类型。

如果需要使用后缀查询,则可以直接使用FuzzyKeyword类型的SuffixQuery,或者将数据翻转后使用性能较弱的Keyword类型的PrefixQuery。

说明
  • FuzzyKeyword类型的字段不支持排序和统计聚合。如果FuzzyKeyword类型的字段同时需要进行排序或统计聚合,可以通过虚拟列为Keyword类型实现。

  • 如果在业务场景中某一个字段需要用到多种查询功能,例如既需要精确查询,又需要高性能模糊查询和全文检索,则可以使用虚拟列功能,将表中的一列在多元索引中映射为三列,这三列可以分别使用Keyword、Text和FuzzyKeyword类型。更多信息,请参见虚拟列。

类型区别

三种字符串类型可用于的查询功能和最大长度有差异,具体说明请参见下表。

说明

“✔️”表示支持,“×”表示不支持。

功能

Keyword

FuzzyKeword

Text

精确查询

✔️

×

×

多词精确查询

✔️

×

×

范围查询

✔️

×

×

列存在性查询(空值查询)

✔️

×

×

排序

✔️

×

×

统计聚合

✔️

×

×

全文检索:分词

×

×

✔️

全文检索:相关性分数

×

×

✔️

全文检索:高亮和摘要

×

×

✔️

全文检索:匹配查询

×

×

✔️

全文检索:短语匹配查询

×

×

✔️

通配符查询

✔️(性能差)

✔️(性能优)

×

前缀查询

✔️(性能差)

✔️(性能优)

×

后缀查询

×

✔️

×

最大长度

4 KB

2 KB

1 KB

相关文章

字符串类型 2025-04-22 14:42

本文介绍字符串相关的三种类型Keyword、FuzzyKeyword和Text,以及如何在业务研发时选择合适的字符串类型。 背景信息 字符串是数据类系统中最常见的类型,基本在所有业务场景中均会使用到。在传统的关系型数据库中,字符串类型会被细分为定长、变长等多种不同的类型。 在表格存储中,字符串类型主

日期时间类型 2025-04-22 14:42

多元索引支持丰富的日期时间(Date)类型,您可以将数据表中整型(Integer)或者字符串(String)类型的数据在多元索引中映射为日期数据类型。当通过多元索引进行范围查询时,使用日期数据类型查询会比使用字符串类型查询更快。 精度

数组和嵌套类型 2025-04-22 14:42

多元索引除了提供Long、Double、Boolean、Keyword、Text、Date、GeoPoint、Vector等基本类型外,还提供了数组类型和嵌套类型两种特殊类型。数组类型适用于存储一系列相同类型的数据,嵌套类型适用于存储具有层级结构的数据,类似于JSON。

虚拟列 2025-04-22 14:42

使用虚拟列功能时,您可以通过修改多元索引 schema 或者新建多元索引来实现新字段新数据类型的查询功能,而无需修改表格存储的存储结构及数据。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号