我想製作一個基於「聽起來像」匹配的搜索功能。MS SQL - WHERE子字符串匹配是拼音嗎?
舉例來說,可以說我有一個公司的名單,看起來像這樣(可以說,我們生活在Bizzaro世界太):
- 阿克米
- 已經典故引用LTD
- 所有準備錯覺網站INC
- 除了同意
- 御批視線
(或類似的名稱... George
或Jeorge
? 「Yah-way」或「ye-hova」?)
當有人搜索「聽起來像」soundex("site") == S230
的東西時,他們也應該看到「Sight」的結果。
由於大多數使用soudnex之前已經知道,普通的子串匹配顯然不會這樣做。
我想在我的腦海裏工作如何使基於這個匹配的WHERE子句,所以而不是典型的WHERE company LIKE input
,我想運行soundex。顯然,如果我在整個公司名稱上運行soundex,我將無法進行子字符串搜索(例如,搜索「ALL」的用戶將永遠不匹配「All ready」的soundex)。 Soundex在每個單詞上分割也許並不值得,所以我不確定運行soundex的所有組合是一個好主意......或者即使在具有超過1000條記錄的數據庫中這在計算上是可行的。
基本上我想有相互作用時(在辦公室或某事),湯姆說薩莉「這名字是像Rebekkah Schwartzkopff」,它可以按照發音來搜索模糊匹配。
顯然我們會因爲soudnex而遇到與非英文公司有關的問題,但我會在這個問題上妥協。
我想這樣做而不添加任何東西到數據庫或存儲過程。
如果您確實無法向數據庫添加任何內容,差異可能是您的最佳選擇 – 2011-04-27 18:12:01