我想讓我的應用程序搜索名稱並返回類似的名字。即如果用戶搜索約翰,喬納森的也應該返回。Sql Server Soundex名稱搜索
Soundex搜索似乎沒有做到這一點。除了存儲相關名字的字典之外,還有其他的選擇嗎?
我想讓我的應用程序搜索名稱並返回類似的名字。即如果用戶搜索約翰,喬納森的也應該返回。Sql Server Soundex名稱搜索
Soundex搜索似乎沒有做到這一點。除了存儲相關名字的字典之外,還有其他的選擇嗎?
您應該看看Levenshtein編輯距離,並查找與目標字符串相比編輯距離較短的字符串。
這裏是SQL Server的它的詳細信息和實施
http://www.kodyaz.com/articles/fuzzy-string-matching-using-levenshtein-distance-sql-server.aspx
編輯距離顯示的編輯的最小數量(字符缺失,置換或插入),你需要做出一個字符串得到你的目標字符串。例如'apple'和'aple'的編輯距離爲1(刪除'p');
不,沒有 - 因爲你尋找的是類似的解釋,而不是類似的聲音。保持選擇是你唯一的選擇。
一種可能性可能是將單詞修剪爲更短的長度 - 在本例中,兩個單詞的soundex都帶有相同的值 – kaj 2012-02-23 13:01:44
@KAJ但這只是這些具體名稱的一種情況。我認爲這歸結爲具有關於應用程序域的更多信息的人,即基本SQL函數不會。 – Yuck 2012-02-23 13:02:41
因此,爲什麼我不提供它作爲答案:-) – kaj 2012-02-23 13:10:16