是否使用非拉丁语系语言的MySql的全文检索效果相当(希伯来语,阿拉伯语,日语......)(Doe

2019-08-03 03:36发布

是否使用非拉丁语系语言MySql的全文搜索能够合理? (希伯来语,阿拉伯语,日语......)

另外:做了一些测试......它有一些问题,希伯来语。 示例:名称发音一样但寻找一个找不到其他的,因为这是在希伯来文常见的拼写错误,看来我将不得不做一些数据操作为它完美地工作。

Answer 1:

虽然在MySQL希伯来语的支持是有限的,你的问题是更多的使用不正确的拼写,那么从这个角度MySQL服务器的功能障碍的人的问题。 当你拼错在谷歌的话,它会告诉你一个建议,你可以点击该建议,以搜索项。

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



Answer 2:

只要你整理被正确设定,它的工作出色。

统一适用于大多数的这方面的工作,当然。 但是,这并没有真正的拉丁字符转换成他们很好(例如,在荷兰整理aa将被识别为å )。



Answer 3:

是的,但是,查了一下停用词是。



Answer 4:

JapaneseChinese使用自己的空格符号MySQL不理解。

请确保你要索引文本的话,它们之间用ASCII分隔符(空格,逗号等)。 外界任何ASCII范围将可能无法正常工作。

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

Cyrillic语言transilteration错误是很常见的。

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

最严重的是西里尔С /拉丁C :这两个符号位于键盘上的一个键,并没有什么不同在大多数字体可言,但他们有不同的代码。

MySQL也不会追上它。



Answer 5:

MySQL的全文搜索行之有效的阿拉伯语 。 只要确保在需要的地方如下:

  1. COLLATION = utf8_unicode_ciCHARACTER SET = utf8 。 (数据库,表和列)。
  2. 3个字母和更多的索引词 。 这是阿拉伯语非常重要的ft_min_word_len = 3 (见show variables like "ft_%";
  3. 检查的MySQL(5.5或5.6),和引擎(InnoDB的或MyISAM数据)的版本


文章来源: Does MySql full text search works reasonably with non-Latin languages (Hebrew, Arabic, Japanese…)