2017-02-10 4 views
3

MATCH AGAINSTをクエリに使用しており、ほとんどがチェコ語であるため、デフォルトの照合としてutf8_czech_ciを使用しています。クエリの最小長を1に設定し、すべてのストップワードを無効にしました。utf8_czech_ciのMySQLとの一致

ただし、単語Scheduleを検索することを検討してください。

あなたが書いた:

  • sSchedule
  • scが見つかりました:何も
  • sch見つかりませんでした。Scheduleは、それがある単一の文字(としてchを扱うように見えます

を見つけましたチェコ語で正しい)が、フルテキスト検索を行うと確かに正しくない。

この現象を回避する方法はありますか?

答えて

1

はい、utf8_czech_ciはchhiの間の1文字で扱います。 Ččは同じですが、すべてがcになります。同様にCaronを持つ他の文字についても同様です。

Thisは、さまざまなutf8照合の照合規則を提供します。

私は、あなたの所見がの場合はの照合で正しいと主張します。 「スケジュール」はチェコ語ですか?

これを回避するには、その列に対して別のutf8 COLLATIONを選択し、FULLTEXTインデックスを再構築します。 utf8_binおよびutf8_general_ciおよびutf8_unicode_ciが候補者となります。同じテキストで、照合順序が異なる2つの列(およびインデックス)が必要な場合があります。次に、検索する言語を制御するために列を選択します。

文字列を比較していますか? "<"と言うと、チェコ語で "<" sch "を参照してください。他の照合(?)はありません。

(utf8mb4は少なくともこの質問に関してutf8と同じ機能を果たします)

関連する問題