本文介紹了數(shù)據(jù)表中和多元索引中字段數(shù)據(jù)類型的映射關系,以及不同字段數(shù)據(jù)類型支持的附加屬性信息。
多元索引的字段值來源于數(shù)據(jù)表中同名字段的值,兩者的數(shù)據(jù)類型必須相匹配,多元索引字段數(shù)據(jù)類型與數(shù)據(jù)表中字段數(shù)據(jù)類型的匹配關系請參見下表。
表中的類型必須一一對應,否則數(shù)據(jù)會被當作臟數(shù)據(jù)丟棄,尤其是Geo-point和Nested擁有各自特定的格式。如果格式不匹配也會被當做臟數(shù)據(jù)丟棄,則會出現(xiàn)數(shù)據(jù)在表中能查詢到,但是在多元索引中查詢不到的情況。
多元索引中字段數(shù)據(jù)類型 | 數(shù)據(jù)表中字段數(shù)據(jù)類型 | 描述 |
Long | Integer | 64位長整型。 |
Double | Double | 64位雙精度浮點數(shù)。 |
Boolean | Boolean | 布爾值。 |
Keyword | String | 不可分詞字符串。 |
FuzzyKeyword | String | 支持高性能模糊查詢的字符串。 |
Text | String | 可分詞字符串或文本。關于分詞的更多信息,請參見分詞。 |
Date | Integer、String | 日期數(shù)據(jù)類型,支持自定義各種格式日期數(shù)據(jù)。更多信息,請參見日期數(shù)據(jù)類型。 |
Geo-point | String | 位置點坐標信息,格式為 |
Vector | String | 向量類型,格式為Float32數(shù)組的字符串,數(shù)組長度與該字段的維度相等。例如向量字符串 |
String | 嵌套類型,例如[{"a": 1}, {"a": 3}]。 |
多元索引字段還支持如下附加屬性。
屬性 | 類型 | 描述 |
IsArray | Boolean | 是否為數(shù)組。 如果為true,則該列是一個數(shù)組。在寫入時,也必須按照JSON數(shù)組格式寫入,例如["a","b","c"]。 Nested類型本身就是一個數(shù)組,所以無須設置Array。 Array類型不影響查詢,所以Array類型的數(shù)據(jù)可以用于所有的Query查詢。 |
isVirtualField | Boolean | 是否為虛擬列。
|
Array和Nested的區(qū)別請參見Nested和Array對比。
數(shù)據(jù)類型和字段屬性組合使用的情況請參見下表。
類型 | IsArray | isVirtualField |
Long | 支持 | 支持 |
Double | 支持 | 支持 |
Boolean | 支持 | 不支持 |
Keyword | 支持 | 支持 |
FuzzyKeyword | 支持 | 支持 |
Text | 支持 | 支持 |
Date | 支持 | 支持 |
Geo-point | 支持 | 支持 |
Vector | 不支持,Vector本身就是數(shù)組 | 支持 |
不支持,Nested本身就是數(shù)組 | 不支持 |