總結soundex是乙個將單詞編碼為1個字母+3個數字(不足部零)的演算法,它將發音相近的單詞對映到同乙個編碼,能有效地搜尋到發音相似或相近的單詞。
例如:love的編碼為l010,live的編碼為l010。
假設使用者搜尋"my love"卻錯誤地輸入了"my live",那麼soundex依然能匹配到正確的結果。
soundex只能對字母進行編碼,因此預處理掉單詞中的非字母字元,如數字、特殊符號等,以及轉換大寫。
編碼規則:
保留第乙個字母,去掉所有a e i o u y h w
數字代替字母(基於發音分類)
b 、f 、p、 v :1編碼去重,相鄰編碼相同(或中間被h、w隔開)則合併(含首字母),被其它間隔則保留。c、g、j、k、q、s、x、z:2
d、t :3
l:4m、n:5
r:6
取得1個字母+3個數字,不足補0
輸入為:he1llo#abc1
輸出為:h412
預處理: he1llo#abc1 -> helloabc -> helloabc輸入為:jkhelloabc -> hllbc
h4412
h412
h412
輸出為:j000
預處理: jk -> jksoundex是乙個簡潔的發音相似的編碼演算法,它可以達到初級的模糊音效果。jk -> jk
j2j (j對應2,即22,僅編碼一次,故保留首字母即可)
j000
如果需要更精準的發音對映,可以使用metaphone演算法,它使用了更高階的規則;或者改進版本的的double metaphone演算法。
解讀ORACLE資料庫的統一命名與編碼規範
1 編寫目的 使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀 理解和繼承。2 適用範圍 本規範適用於公司範圍內所有以oracle作為後台資料庫的應用系統和專案開發工作。3 物件命名規範 3.1 資料庫和sid 資料庫名定義為系統名 模組名 全域性資料庫名和例程sid 名要求一致 ...
原 騰訊搜搜的漢字搜尋編碼問題
本來一般搜尋引擎都是 關鍵字之類的形式就可以查詢,非英文本母就urlencode一下 utf 8的 地方 urlencode就是 e5 9c b0 e6 96 b9 e5 9c b0 e6 96 b9 谷歌 地方 這些都能成功查詢。但如果用soso 就是亂碼 原因是soso用的是gb2312編碼,g...
搜尋引擎走出APP,抖音和快手要拿下更大的蛋糕
在國內網際網路行業中,bat 無疑是個繞不開的名詞,其中阿里以電商聞名 騰訊靠社交獨步天下,而則憑藉著搜尋引擎幾乎無往而不利。然而當進入移動網際網路時代後,面對乙個個資料孤島般的app,的搜尋引擎已遠不如此前 鋒利 但就在移動網際網路逐漸成熟 流量紅利不再的當下,搜尋又重新被各大平台擺到了台前。日前...