MySQLの全文検索機能が必要になる可能性があります。基本的に、FULLTEXT
インデックスを作成し、を使用してそれを検索しMATCH() ... AGAINST
ます。
MySQLでクエリごとに検索言語を設定する機能を知りませんが、そのようなサポートが存在しないという意味ではありません。クエリごとの言語設定が要件であるかどうかは明確ではありませんでした。
MySQLの最新の安定したリリースは、最新のトランザクションおよびクラッシュセーフなInnoDBテーブルタイプと、安全でないMyISAMテーブルタイプでの全文検索をサポートしています。MySQLがMyISAMでのみFTSを実行する場合は、アップグレードする必要があります。5.6は、InnoDBでの全文検索をサポートしています。
または、本当にアップグレードできない場合は、重要なデータをInnoDBテーブルに保存し、定期的なクエリを実行して、全文検索専用のマテリアライズドビューとして使用するMyISAMテーブルを更新できます。
- 新しいMyISAMテーブルを作成します
INSERT INTO ... SELECT
InnoDBテーブルから新しいMyISAMテーブルへのデータ
CREATE
新しいMyISAMテーブルのフルテキストインデックス
DROP
フルテキストインデックス作成に使用していた古いMyISAMテーブル。と
- 最後に
ALTER TABLE ... RENAME
、新しいMyISAMテーブルに古いテーブルの名前を付けます。
古いテーブルを削除してから新しいテーブルを再作成するまでの間に、フルテキストインデックスが使用できない非常に短いウィンドウが表示されます。データも古くなり、ビューの更新の間に古くなりますが、トリガーを使用して回避することは可能です(MySQLを十分に使用していません)。これらの制限に耐えられない場合は、5.6にアップグレードしてください。
MySQLの全文検索では、ストップワードやその他の調整を制御できます。それはうまく仕事をするはずの堅実な製品です。