我正在使用 Sphinx 和 Thinking Sphinx 插件来搜索我的数据。我正在使用 MySQL。
我的数据包含重音字符(“á”、“é”、“ã”),我希望它们在搜索时与非重音字符(例如“a”、“e”、“a”)等效订购。
我使用字符集表 (pastie.org/204316) 进行了搜索,搜索“AGUA”返回“ÁGUA”,但结果的排序无法正常工作。例如,在搜索“AGUA”时,“ÁGUA”出现在“MUITA ÁGUA”之后,但我希望它被排序为好像它是用“A”而不是“Á”编写的。
我能想到的唯一解决方案是索引一个包含非重音字符的新列并将其用于排序,使用 REPLACE (http://dev.mysql.com/doc/refman/5.4/en/string-functions.html #function_replace ) mysql 函数来去除重音字符,但我需要为每个可能的重音字符(并且有很多)调用一次 REPLACE,在我看来,这似乎不是一个非常可维护的解决方法。
有人知道一些更好的方法来处理这个问题吗?
谢谢!