1
我目前正在開發網站的搜索功能。用戶按名稱搜索其他用戶。對於名稱上有重音的用戶,我會遇到一些麻煩。執行不區分重音的全文搜索MySQL
我在名稱列上有一個FULLTEXT索引,表的排序規則是utf8_general_ci。
目前,如果某人的網站註冊,與重音一個名稱(例如:阿爾貝託安德烈斯),名稱是存儲在DB如圖如下圖中:
所以如果我執行以下查詢SELECT * MATCH(name) AGAINST('alberto andres')
,我會得到許多結果,比如'Alberto','Andres','Andrés'等比賽得分更高,最終得分低的用戶可能正在尋找'AlbertoAndrés'的記錄。
我該如何考慮重音記錄當前存儲在數據庫中的方式?
謝謝!
感謝Ollie爲您的答案!布爾模式不會改進結果。 '使用utf8'返回相同的記錄。有趣的是,如果我在php上執行utf8_encode('AlbertoAndrés')並將輸出傳遞給查詢,我確實會得到AlbertoAndrés作爲第一個結果。當用戶輸入沒有重音的名字時,我仍然沒有想出解決方案。 – fdezjose 2013-02-08 16:20:52