使用多元索引前,您需要瞭解多元索引支援的資料類型以及多元索引中資料類型與資料表中資料類型的映射關係。
資料類型說明
多元索引提供了Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector等基礎資料型別 (Elementary Data Type),數群組類型和巢狀型別等特殊類型以及虛擬列。
基礎資料型別 (Elementary Data Type)
多元索引提供了Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector等基礎資料型別 (Elementary Data Type)。具體說明請參見下表。
基礎資料類型 | 描述 |
Long | 64位長整型。 |
Double | 64位雙精確度浮點數。 |
Boolean | 布爾值。 |
Keyword | 不可分詞字串。 |
Text | 可分詞字串或文本。關於分詞的更多資訊,請參見分詞。 |
Date | 日期資料類型,支援自訂各種格式日期資料。更多資訊,請參見日期資料類型。 |
Geopoint | 位置點座標資訊,格式為 |
Vector | 向量類型,格式為Float32數組的字串,數組長度與該欄位的維度相等。例如向量字串 |
數組和巢狀型別
多元索引除了提供Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector等基本類型外,還提供了數群組類型和巢狀型別兩種特殊類型。數群組類型適用於儲存一系列相同類型的資料,巢狀型別適用於儲存具有層級結構的資料,類似於JSON。更多資訊,請參見數組和巢狀型別。
數群組類型
巢狀型別
虛擬列
如果要在不改變Table Store的儲存結構及資料的情況下實現新欄位新資料類型的查詢功能,您可以使用多元索引虛擬列實現。更多資訊,請參見虛擬列。
虛擬列功能支援使用者在建立多元索引的時候將表中一列映射到多元索引中的虛擬列。新的虛擬列類型可以不同於表中的原始列類型,以便支援使用者在不修改表結構和資料的情況下建立一列,新的列可以用於查詢加速或者採用不同的分詞器。
一個Text欄位支援不同的分詞器
單個字串列可以映射到多元索引多個Text列,不同Text列採用不同的分詞,以便滿足不同的業務需求。
查詢加速
不對錶中資料做清洗和重建,只需要將相應列映射為其他類型,即可在部分情境下提升查詢效能。例如數字類型轉換為keyword類型可以提高精確查詢(TermQuery)的效能,string類型轉換為數字類型可以提高範圍查詢(RangeQuery)的效能。
資料類型映射
多元索引的欄位值來源於資料表中同名欄位的值,兩者的資料類型必須相匹配,多元索引欄位資料類型與資料表中欄位資料類型的匹配關係請參見下表。
多元索引中欄位資料類型 | 資料表中欄位資料類型 |
Long | Integer |
Long Array | String |
Double | Double |
Double Array | String |
Boolean | Boolean |
Boolean Array | String |
Keyword | String |
Keyword Array | String |
Text | String |
Date | Integer、String |
Date Array | String |
Geopoint | String |
Geopoint Array | String |
Vector | String |
Nested | String |