2009-08-30 135 views
6

MySql全文检索是否可以合理地与非拉丁语言一起工作? (希伯来语,阿拉伯语,日语...)MySql全文检索与非拉丁语言(希伯来语,阿拉伯语,日语...)合理工作

增加:做了一些测试......它有一些希伯来语的问题。示例:名称מוסינזון发音一样מושינזון但寻找一个找不到其他的,因为这是在希伯来文常见的拼写错误,看来我必须做一些数据操作为它完美工作。

+0

什么是你整理? – Eric 2009-08-30 22:19:52

+0

utf8_unicode_ci – 2009-08-30 22:43:09

+0

是的,这不会赶上希伯来语义。如果它被设置为希伯来语整理,我的猜测是它会。 – Eric 2009-08-31 11:55:58

回答

2

只要您的collation设置正确,它的工作出色。

当然,Unicode的大部分功能都可以使用。但是,这并不能真正将拉丁字符翻译成它们(例如,在荷兰语整理中,aa将被识别为å)。

1

是的,但是,看看stopwords是什么。

1

JapaneseChinese使用自己的空白符号MySQL不明白。

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

此外,你可能需要修正ft_min_word_len:默认情况下,MySQL不会索引的话比4字符,最JapaneseChinese话短。

Cyrillic语言translteration错误是相当普遍的。

该序列的所有字母:АВЕКМНОРСТуХ/ABEKMHOPCTyX在大多数字体中无法区分。

其中最糟糕的是西里尔С /拉丁语C:这两个符号都位于键盘上的一个键上,在大多数字体中完全没有差别,但它们有不同的代码。

MySQL也无法捕捉它。

2

尽管希伯来语在MySQL中的支持有限,但您的问题更多的是使用不正确拼写的人的问题,然后在这个角度看MySQL服务器的功能障碍。当您在Google拼写错误时,会显示一条建议,您可以点击该建议来搜索该字词。也许你可以建立一些具有相同行为的程序,例如,您可以创建一个包含两个字段的表格,其中一个包含拼写错误的单词,另一个包含正确的拼写。然后,您可以构建一个程序来查找拼写错误的单词并显示建议。

+0

通常的实现方法是使用n-gram – strum 2013-08-27 17:00:29

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)版本,和引擎(InnoDB的或MyISAM数据)
相关问题