Table Store多元索引提供了萬用字元查詢、首碼查詢和尾碼查詢功能來滿足使用者不同情境的模糊查詢需求,請根據實際業務需求選擇合適的查詢方式。本文介紹多元索引支援的模糊查詢類型。
背景資訊
在業務開發過程中,經常需要用到模糊查詢的功能,例如查詢人名、電話號碼、訂單號等。在關係型資料庫中,您可以使用like文法進行模糊查詢。同樣在Table Store的多元索引中也支援模糊查詢功能。
查詢類型
目前多元索引中模糊查詢功能可以按照查詢功能分為以下三種:
萬用字元查詢:類似於傳統關係型資料庫裡面的like文法,支援星號(*)和問號(?)兩種萬用字元。要匹配的值中可以用星號(*)代表任一字元序列,或者用問號(?)代表任意單個字元,且支援以星號(*)或問號(?)開頭。例如查詢
table*e
,可以匹配到tablestore
。首碼查詢:通過指定首碼來查詢,例如查詢所有訂單中以
H00
開始的訂單。尾碼查詢:通過指定尾碼來查詢,例如查詢所有手機號碼中以
1234
結束的手機號。
模糊查詢功能按照欄位類型和實現可以分為以下三種:
Keyword類型:字串匹配式模糊查詢:查詢過程中需要逐個字串進行匹配,查詢效能會隨著資料規模增加而下降,支援萬用字元查詢和首碼查詢。大小寫敏感,最大支援的欄位長度為4 KB。
FuzzyKeyword類型:面向模糊查詢的專項最佳化:相對於Keyword類型可以更快地查詢到資料,並且查詢效能比 Keyword 類型更穩定,基本不受資料規模影響,支援萬用字元查詢、首碼查詢和尾碼查詢。大小寫敏感,最大支援的欄位長度為2 KB。
說明當前FuzzyKeyword類型處於邀測中,如果需要使用FuzzyKeyword類型,請提交工單聯絡我們進行開通。
Text類型:分詞模式:使用FuzzyAnalyzer,更加自由可控,支援大小寫敏感控制,功能上僅支援
*ALI*
模式的基於分詞的萬用字元查詢。在使用FuzzyAnalyzer時,最大支援的欄位長度為1 KB。