我正在嘗試編寫一個查詢我們的目錄服務器運行openldap的搜索。使用openldap進行近似搜索
的用戶會使用他們感興趣的人的名字或姓氏進行搜索。
我發現重音字符的問題(如áéíóú
),因爲姓氏和名字都寫在西班牙語,所以雖然正確的方法是Pérez
它可以寫爲搜尋的緣故Perez
,沒有口音。
如果我使用'(cn=*Perez*)'
,我只得到非重音結果。
如果我使用'(cn=*Pérez*)'
,我只會得到重音結果。
如果我使用'(cn=~Perez)'
我得到奇怪的結果(或至少沒有什麼我可以使用,因爲雖然結果中含有Perez
和Pérez
ocurrences,我也得到了一定的成果,顯然無關與查詢...
在西班牙語中,這發生了很多......無論是你想要稱之爲懶惰,事實是,對於這種事情,人們往往不寫出口音,因爲它假定所有這些搜索都與這兩個選項(我猜,因爲谷歌允許它,每個人都認爲它應該這樣工作)。
除了更新d atabase並刪除所有重音並修改它們在查詢中......你能想到另一種解決方案嗎?
因此,對於字符串,〜=指定基於Soundex(http://en.wikipedia.org/wiki/Soundex)的匹配? – RobertG