2009-08-30 79 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數據)