MySQL は現在最も一般的に使用されているリレーショナル データベースの 1 つであり、全文検索も非常に重要な機能です。この記事では、MySQL の全文検索テクニックを紹介し、MySQL を全文検索に効果的に使用するのに役立ちます。
1. 全文検索サポートの設定
MySQL で全文検索機能を使用するには、まずサーバーでこの機能が有効になっていることを確認する必要があります。 MySQL 5.6.4 以降では、次のコマンドを使用して全文検索が有効になっているかどうかを確認できます。
SHOW VARIABLES LIKE 'innodb_ft%';
innodb_ft_server が ON に設定されている場合、全文検索は有効になっています。
全文検索サポートが有効になっていない場合は、my.cnf (または my.ini) ファイルを変更し、ft_min_word_len パラメーターの値を、検索される単語の最小長に設定する必要があります。デフォルトでは、その値は 4 です。たとえば、長さが 3 の単語を検索したい場合は、その値を 3 に変更し、MySQL サービスを再起動する必要があります。
2. フルテキスト インデックスの作成
フルテキスト検索のサポートが有効になっている場合、検索する必要があるテーブルのフルテキスト インデックスを作成できます。フルテキスト インデックスの作成は、フルテキスト検索が必要な列に FULLTEXT インデックスを作成するのと同じくらい簡単です。たとえば、記事の本文内で全文検索を実行する場合は、次のコマンドを使用して、「articles」テーブルの「content」列に FULLTEXT インデックスを作成できます:
ALTER TABLE articles ADD FULLTEXT(content);
これにより、「コンテンツ」列インデックスの FULLTEXT が作成され、全文検索クエリが高速化されます。 FULLTEXT インデックスは、CHAR、VARCHAR、または TEXT データ型の列にのみ作成できることに注意してください。全文インデックスが作成されると、全文検索を開始できます。
3. 全文検索クエリを使用する
MySQL を使用した全文検索の構文は、通常の SQL クエリ ステートメントと非常に似ています。たとえば、「MySQL」という単語を含むすべての記事を検索するステートメントは次のとおりです。
SELECT * FROM articles WHERE MATCH(content) AGAINST('MySQL');
このうち、MATCH 句で検索対象の列を指定し、AGAINST 句で検索対象のキーワードを指定します。複数の列で全文検索を実行する場合は、列をリストするだけです。たとえば、テキストとタイトルの両方に「MySQL」を含む記事を検索するには、次のコマンドを使用できます。
SELECT * FROM articles WHERE MATCH(title,content) AGAINST('MySQL');
全文検索クエリを実行するときは、通常、次の問題:
SELECT * FROM articles WHERE MATCH(content) AGAINST('"MySQL database"' IN BOOLEAN MODE);
SELECT * FROM articles WHERE MATCH(content) AGAINST('+MySQL -database' IN BOOLEAN MODE);
ブール モードでは、プラス記号「 」は、 「マイナス記号」は単語が含まれないことを意味し、「アスタリスク」は任意の単語と一致することを意味し、「二重引用符」は完全な語句と一致することを意味します。
SELECT * FROM lyrics WHERE MATCH(text) AGAINST ('+love +song' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION);
この例では、MySQL は自然言語パターンとクエリ拡張を使用してテキスト間の類似性を判断し、より適切な一致結果が得られます。
4. 結論
全文検索は現代のデータベースの標準機能となっており、ソーシャル ネットワーク、音楽およびビデオ関連アプリケーションなどを含むさまざまな分野で広く使用されています。ここでは、MySQL の全文検索テクニックを紹介しますが、これらのテクニックは、MySQL をより効率的に全文検索に使用するのに役立つと思います。もちろん、他にも学び、習得する必要のあるスキルやテクニックはたくさんありますが、この記事があなたにとって新しいアイデアを導き、より多くのインスピレーションを与えることを願っています。
以上がMySQL の全文検索テクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。