如果實際業務中要用到非主鍵列查詢、多條件組合查詢等多種查詢功能,您可以通過控制台為資料表建立多元索引,然後使用多元索引查詢資料。
前提條件
已建立資料表,且資料表的最大版本數(max Versions)必須為1,資料生命週期(Time to Live)必須滿足如下條件中的任意一個。具體操作,請參見資料表操作。
資料表的資料生命週期為-1(資料永不到期)。
資料表的資料生命週期不為-1時,資料表為禁止更新狀態(即是否允許更新為否)。
注意事項
步驟一:建立多元索引
建立多元索引用於加速資料查詢。建立多元索引時,您需要將要查詢的欄位添加到多元索引中,您還可以配置多元索引的路由鍵、資料生命週期和預排序的進階選項。
進入索引管理頁簽。
在頁面上方,選擇資源群組和地區。
在概覽頁面,單擊執行個體名稱或在操作列單擊執行個體管理。
在執行個體詳情頁簽的資料表列表地區,單擊資料表名稱或在操作列單擊索引管理。
在索引管理頁簽,單擊建立多元索引。
在建立索引對話方塊,建立多元索引。
系統預設會自動產生索引名,可根據需要設定索引名。
選擇Schema產生方式。
如果需要配置資料生命週期、路由鍵、索引預排序等選項,請開啟進階選項開關,並根據下表說明配置參數。
參數
說明
路由鍵
自訂路由欄位。可以選擇部分主鍵列作為路由欄位,在進行索引資料寫入時,Table Store會根據路由欄位的值計算索引資料的分布位置,路由欄位的值相同的記錄會被索引到相同的資料分區中。
資料生命週期
多元索引中資料的儲存時間,單位為秒。預設值為-1,表示資料永不到期。
資料生命週期的取值最低為86400秒(一天),也可設定為-1(永不到期)。同時多元索引的TTL值必須小於或等於資料表的TTL值。
如果需要系統自動清理多元索引中的歷史資料,您可以配置資料生命週期為指定時間。當資料的儲存時間超過設定的資料生命週期時,系統會自動清理超過資料生命週期的資料。
預排序
多元索引預設按照設定的索引預排序方式進行排序,用於確定資料的預設返回順序。
索引預排序只支援按照主鍵排序和按照欄位值排序兩種方式。如果未自訂預排序,則預設為主鍵排序,您可以根據實際查詢情境指定預排序方式。
重要含有Nested類型欄位的多元索引不支援索引預排序。
單擊確定。
多元索引建立完成後,在索引列表的操作列,單擊索引詳情,可查看索引表的索引基本資料、索引計量、路由鍵、索引欄位和預排序等資訊。
步驟二:查詢資料
使用多元索引查詢資料時,請根據實際查詢情境選擇合適的查詢類型。查詢資料時支援配置要返回的列以及返回資料的排序方式。
多元索引支援在控制台使用的查詢類型包括精確查詢、範圍查詢、首碼查詢、匹配查詢、萬用字元查詢、短語匹配查詢、列存在性查詢、多詞精確查詢、多條件組合查詢、地理位置查詢(只能對地理位置欄位使用)和巢狀型別查詢(只能對巢狀型別欄位使用)。
進入索引管理頁簽。
在頁面上方,選擇資源群組和地區。
在概覽頁面,單擊執行個體名稱或在操作列單擊執行個體管理。
在執行個體詳情頁簽的資料表列表地區,單擊資料表名稱或在操作列單擊索引管理。
在索引管理頁簽,單擊目標多元索引操作列的搜尋。
在查詢資料對話方塊,查詢資料。
系統預設返回所有列,如需顯示指定屬性列,關閉擷取所有列並輸入需要返回的屬性列,多個屬性列之間用半形逗號(,)隔開。
說明系統預設會返回資料表的主鍵列。
選擇索引欄位,單擊添加,並設定索引欄位的查詢類型和值。
查詢類型
說明
採用完整精確匹配的方式查詢表中的資料,類似於字串匹配。對於Text(分詞字串)類型欄位,只要分詞後有詞條可以精確匹配即可。
根據範圍條件查詢表中的資料。對於Text類型欄位,只要分詞後的詞條中有詞條滿足範圍條件即可。
根據首碼條件查詢表中的資料。對於Text類型欄位,只要分詞後的詞條中有詞條滿足首碼條件即可。
用近似匹配的方式查詢表中的資料。對Text類型的列值和查詢關鍵詞會先按照設定好的分詞器做切分,然後按照切分好後的詞去查詢。
萬用字元查詢中要匹配的值可以是一個帶有萬用字元的字串。
目前支援星號(*)和問號(?)兩種萬用字元。要匹配的值中可以用星號(*)代表任一字元序列或者用問號(?)代表任意單個字元,且支援以星號(*)或問號(?)開頭。
類似於匹配查詢,但是分詞後多個詞的位置關係會被考慮,只有分詞後的多個詞在行資料中以同樣的順序和位置存在時,才表示行資料滿足查詢條件。
如果查詢列的分詞類型為模糊分詞,則使用短語匹配查詢可以實現比萬用字元查詢更快的模糊查詢。
也叫NULL查詢或者空值查詢,一般用於判斷稀疏資料中某一行的某一列是否存在,例如查詢所有資料中address列不為空白的行。
如果需要查詢某一列為空白,則選擇操作符為Not且欄位的查詢類型為列存在性查詢。
類似於精確查詢,但是多詞精確查詢可以指定多個查詢關鍵詞,查詢匹配這些詞的資料。多個查詢關鍵詞中只要有一個詞精確匹配,該行資料就會被返回,等價於SQL中的In。
查詢條件包含一個或者多個子查詢條件,根據子查詢條件來判斷一行資料是否滿足查詢條件。
每個子查詢條件可以是控制台中支援配置的任意一種查詢類型。
配置時需要根據實際選擇關係操作符為And、Or或Not。
地理位置查詢
地理位置查詢包括距離查詢、矩形查詢和多邊形查詢三種查詢方式。只有當所選欄位的資料類型為地理位置時才能使用地理位置查詢。
查詢巢狀型別欄位中子行的資料。只有當所選欄位的資料類型為巢狀型別時才能使用巢狀型別查詢。
選擇巢狀型別欄位後,需要選擇子列並配置子列的查詢類型和值。
向量檢索使用數值向量進行近似最近鄰查詢。只有當所選欄位的資料類型為向量類型時才能使用向量檢索。
選擇向量類型欄位後,需要輸入要查詢的向量和topK值。
系統預設關閉排序功能,如需根據索引欄位對返回結果進行排序,開啟是否排序後,根據需要添加索引欄位並配置排序方式。
單擊確定。
符合查詢條件的資料會顯示在索引管理頁簽中。
附錄:管理多元索引
建立多元索引後,請根據需要執行相應操作。
操作 | 說明 |
查看索引詳情 | 查看多元索引的索引基本資料、索引計量、路由鍵、索引欄位和預排序等資訊。
|
修改多元索引Schema | 如果要在多元索引中新增、更新或者刪除索引列,您可以使用動態修改schema功能實現。具體操作,請參見動態修改schema。 |
修改多元索引生命週期 | 如果希望系統自動清理多元索引中的歷史資料或者延長多元索引資料的儲存時間,您可以修改多元索引的資料生命週期。
|
刪除多元索引 | 如果不再需要多元索引加速資料查詢時,您可以刪除多元索引。 重要 多元索引刪除後不能恢複,如需再次使用多元索引請重新建立。
|
常見問題
相關文檔
您還可以通過命令列工具和各語言SDK使用多元索引。具體操作,請參見通過命令列工具使用多元索引和通過SDK使用多元索引。
如果要在不修改資料表的儲存結構和資料的情況下,對新欄位新資料類型的查詢,您可以使用虛擬列功能實現。具體操作,請參見虛擬列。