MySql 全文搜索是否适用于非拉丁语言?(希伯来语、阿拉伯语、日语……)
补充:做了一些测试......希伯来语有一些问题。示例:מו ס ינזון这个名字的发音与מו ש ינזון相同,但搜索一个不会找到另一个,因为这是希伯来语中常见的拼写错误,看来我必须进行一些数据处理才能使其完美运行.
MySql 全文搜索是否适用于非拉丁语言?(希伯来语、阿拉伯语、日语……)
补充:做了一些测试......希伯来语有一些问题。示例:מו ס ינזון这个名字的发音与מו ש ינזון相同,但搜索一个不会找到另一个,因为这是希伯来语中常见的拼写错误,看来我必须进行一些数据处理才能使其完美运行.
虽然 MySQL 对希伯来语的支持有限,但从这个角度来看,您的问题更多是人们使用错误拼写的问题,然后是 MySQL 服务器的功能障碍。当您在 Google 中拼错一个词时,它会向您显示一个建议,您可以单击该建议来搜索该词。
也许您可以构建一些具有相同行为的程序,例如,您可以创建一个包含 2 个字段的表,一个包含常见拼写错误的单词,另一个包含正确拼写。然后,您可以构建一个程序来查找拼写错误的单词并显示建议。
只要您的排序规则设置正确,它就可以出色地工作。
当然,Unicode 将适用于大多数情况。但这并不能很好地将拉丁字符翻译成它们(例如,在荷兰语排序规则aa
中将被识别为å
)。
是的 MySQL 全文搜索适用于阿拉伯语。只需在需要时确保以下内容:
COLLATION = utf8_unicode_ci
& CHARACTER SET = utf8
. (数据库、表和列)。ft_min_word_len = 3
, (见show variables like "ft_%";
)是的,但是,请查看停用词是什么。
Japanese
并Chinese
使用他们自己MySQL
不理解的空白符号。
确保要索引的文本中的单词用ASCII
分隔符(空格、逗号等)分隔。范围之外的任何东西ASCII
都可能不起作用。
此外,您可能需要修复ft_min_word_len
:默认情况下,MySQL
不会索引短于4
字符的单词,以及 mostJapanese
和Chinese
单词。
在Cyrillic
语言中,翻译错误很常见。
此序列中的所有字母:АВЕКМНОРСТуХ / ABEKMHOPCTyX
在大多数字体中都无法区分。
其中最糟糕的是西里尔文С
/拉丁文C
:这两个符号都位于键盘上的一个键上,并且在大多数字体中根本没有区别,但它们有不同的代码。
MySQL
也不会抓住它。