使用多元索引前,您需要瞭解多元索引支援的資料類型以及多元索引中資料類型與資料表中資料類型的映射關係。
資料類型說明
多元索引提供了 Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector 等基礎資料型別 (Elementary Data Type),數群組類型和巢狀型別等特殊類型以及虛擬列。
Table Store Java SDK 版本從 5.13.9 版本開始支援多元索引 Date 類型。如需使用多元索引 Date 類型,請確保擷取了正確的 Java SDK 版本。關於 Java SDK 歷史迭代版本的更多資訊,請參見 Java SDK 歷史迭代版本。
基礎資料型別 (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 |