本文介紹了資料表中和多元索引中欄位資料類型的映射關係,以及不同欄位資料類型支援的附加屬性資訊。
多元索引的欄位值來源於資料表中同名欄位的值,兩者的資料類型必須相匹配,多元索引欄位資料類型與資料表中欄位資料類型的匹配關係請參見下表。
表中的類型必須一一對應,否則資料會被當作髒資料丟棄,尤其是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 | 巢狀型別,例如[{"a": 1}, {"a": 3}]。 |
多元索引欄位還支援如下附加屬性。
屬性 | 類型 | 描述 |
IsArray | Boolean | 是否為數組。 如果為true,則該列是一個數組。在寫入時,也必須按照JSON數組格式寫入,例如["a","b","c"]。 Nested類型本身就是一個數組,所以無須設定Array。 Array類型不影響查詢,所以Array類型的資料可以用於所有的Query查詢。 |
isVirtualField | Boolean | 是否為虛擬列。
|
資料類型和欄位屬性群組合使用的情況請參見下表。
類型 | IsArray | isVirtualField |
Long | 支援 | 支援 |
Double | 支援 | 支援 |
Boolean | 支援 | 不支援 |
Keyword | 支援 | 支援 |
FuzzyKeyword | 支援 | 支援 |
Text | 支援 | 支援 |
Date | 支援 | 支援 |
Geo-point | 支援 | 支援 |
Vector | 不支援,Vector本身就是數組 | 支援 |
不支援,Nested本身就是數組 | 不支援 |