MySql全文搜索是否适用于非拉丁语言(希伯来语,阿拉伯语,日语......)

时间:2009-08-30 15:51:37

标签: mysql full-text-search non-latin

MySql全文搜索是否适用于非拉丁语言? (希伯来语,阿拉伯语,日语......)

补充:做过一些测试......希伯来语有一些问题。示例:名称מוסינזון的发音与מושינזון相同,但搜索一个将找不到另一方面,因为这是希伯来语中常见的拼写错误,我似乎必须做一些数据操作才能使其完美运行。

5 个答案:

答案 0 :(得分:3)

尽管希伯来语在MySQL中的支持有限,但是你的问题更多的是人们使用错误拼写的问题,从而在这个角度来看MySQL服务器的功能失调。当您在Google中拼错单词时,它会向您显示建议,您可以点击该建议来搜索该字词。

也许您可以构建一些具有相同行为的程序,例如你可以创建一个包含2个字段的表,一个包含常见拼写错误的单词,另一个包含正确的拼写单词。然后,您可以构建一个程序,找到拼写错误的单词并显示建议。

答案 1 :(得分:2)

只要您的collation设置正确,它就能很好地运作。

当然,Unicode适用于大多数情况。但这并不能很好地将拉丁字符翻译成它们(例如,荷兰语排序aa将被识别为å)。

答案 2 :(得分:1)

是的,请查看stopwords是什么。

答案 3 :(得分:1)

JapaneseChinese使用MySQL无法理解的自己的空白符号。

确保您要编入索引的文本中的单词用ASCII分隔符(空格,逗号等)分隔。 ASCII范围之外的任何内容都可能不起作用。

此外,您可能需要修复ft_min_word_len:默认情况下,MySQL不会将短于4字符的字词编入索引,而且大多数Japanese和{{ 1}}单词。

Chinese种语言中,transilteration错误很常见。

此序列中的所有字母:Cyrillic在大多数字体中无法区分。

最糟糕的是西里尔语АВЕКМНОРСТуХ / ABEKMHOPCTyX /拉丁语С:这两个符号都位于键盘上的一个键上,大多数字体都没有区别,但它们的代码不同。 / p>

C也不会抓住它。

答案 4 :(得分:0)

MySQL全文搜索适用于阿拉伯语。只需在需要的地方确认以下内容:

  1. COLLATION = utf8_unicode_ci &的 CHARACTER SET = utf8 即可。 (数据库,表和列)。
  2. 3个字母以上的索引词。这对于阿拉伯语来说是非常重要ft_min_word_len = 3(请参阅show variables like "ft_%";
  3. 检查MySQL(5.5或5.6)和Engine(InnoDb或MyIsam)的版本