2009-08-30 12 views
6

MySqlの全文検索は非ラテン語では合理的に機能しますか? (ヘブライ語、アラビア語、日本語...)MySqlのフルテキスト検索は、非ラテン言語(ヘブライ語、アラビア語、日本語...)で合理的に機能しますか

追加:ヘブライ語にはいくつか問題があります。例:名前מוסינזוןמושינזוןと同じように発音されるが、これはヘブライ語では一般的なスペルエラーであるように、1つは、他のを見つけることができません検索、私がしなければならないだろうと思われますいくつかのデータ操作が完全に機能するようにします。

+0

はあなたの照合何ですか? – Eric

+0

utf8_unicode_ci –

+0

ええ、それはヘブライ語の意味を理解しません。それがヘブライの照合に設定されていれば、それは私の推測です。 – Eric

答えて

2

collationが正しく設定されている限り、正常に動作します。

もちろん、ほとんどの場合Unicodeが動作します。しかし、それは実際にはラテン文字を非常によく翻訳するわけではありません(たとえば、オランダの照合ではaaåと認識されます)。

1

ただし、stopwordsが何であるかを確認してください。

1

JapaneseおよびChineseは、MySQLが認識しない独自の空白記号を使用します。

インデックスに入れるテキスト内の単語が、区切り文字(スペース、コンマなど)で区切られていることを確認してください。ASCII区切り文字ASCIIの範囲外のものは、おそらく動作しません。デフォルトでは、MySQL4文字より短くなりません索引語、および最もJapaneseChinese言葉を:

はまた、あなたはおそらくft_min_word_lenを修正する必要があります。

Cyrillicでは、翻訳の誤りはかなり一般的です。

このシーケンスからのすべての文字:АВЕКМНОРСТуХ/ABEKMHOPCTyXはほとんどのフォントで見分けがつきません。

キリル文字С /ラテンC:これらの記号は両方ともキーボードの1つのキーにあり、ほとんどのフォントでは違いはありませんが、コードが異なります。

MySQLもそれをキャッチしません。

2

MySQLでのヘブライ語のサポートは限られていますが、誤ったスペルを使用している人が問題になり、この観点からMySQLサーバーの機能不全が発生します。 Googleで単語のスペルを間違えると、候補が表示され、その候補をクリックするとその単語を検索できます。

おそらく、あなたは同じ振る舞いを持ついくつかのプログラムを作ることができます。 2つのフィールドを持つ表を作成することができます.1つは一般的にスペルミスのある単語が含まれ、もう1つは正しいスペルが含まれています。スペルミスのある単語を見つけてその提案を表示するプログラムを作成することができます。

+0

これを実装する通常の方法は、nグラム – strum

0

はいアラビア語には、フルテキスト検索が正常に動作します。

  1. COLLATION = utf8_unicode_ci & CHARACTER SET = utf8:ただ、次の場所に必要なのを確認してください。 (データベース、テーブル、および列)。
  2. 3文字以上の索引語。これは、ft_min_word_len = 3
  3. は、MySQL(5.5または5.6)のバージョンを確認します(show variables like "ft_%";を参照)アラビア語非常に重要であり、かつエンジン(InnoDBはテーブルまたはMyISAM)
関連する問題