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