0

我有一个网站,我刚刚为它写了一个很棒的搜索功能。我刚刚意识到我的数据库中有一些带有重音符号的单词。因此,当有人键入要搜索的单词时,当然没有重音符号,他们找不到他们要查找的内容。

目前大部分搜索功能已经解决了这个问题;他们是怎么做到的呢?一定有什么巧妙的把戏。我的大多数查询都使用 mysql 的 MATCH 功能,但其中一个使用 LIKE。

4

1 回答 1

1

您需要在模式上设置特定的排序规则,以便 MySQL 知道哪些字符应该是等效的。带有变音符号的字母是否被认为与没有或其他字符序列的字母相同取决于语言,但请尝试将 utf8_general_ci 作为忽略重音符号的起点(假设您使用的是 UTF-8 字符集,您应该是真的)。

尝试在所有字符串上使用相同的排序规则,以便可以连接和比较它们,而无需进行昂贵的、破坏索引的转换。

于 2009-09-14T02:11:26.780 回答