全部產品
Search
文件中心

Tablestore:字串類型

更新時間:Dec 06, 2025

本文介紹字串相關的三種類型Keyword、FuzzyKeyword和Text,以及如何在業務研發時選擇合適的字串類型。

背景資訊

字串是資料類系統中最常見的類型,基本在所有業務情境中均會使用到。在傳統的關係型資料庫中,字串類型會被細分為定長、變長等多種不同的類型。

在Table Store中,字串類型主要是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

2 MB