MySQL は、ブール モードと呼ばれる別の形式の全文検索をサポートしています。ブール方式で、次の詳細を指定できます。
一致する単語;
1.除外する単語 (行にこの単語が含まれる場合、他の指定された単語が含まれていても、その行は返されません)。
2. 配置のヒント (一部の単語が他の単語よりも重要であること、およびより重要な単語のレベルが高いことを指定する)
4. 他の内容。
FULLTEXT インデックスがなくても使用可能 ブール型アプローチは、FULLTEXT インデックスが定義されていない場合でも使用できるという点で、これまで使用されていた全文検索構文とは異なります。ただし、これは非常に遅い操作です (データ量が増えるとパフォーマンスが低下します)。
IN BOOLEAN MODE の役割を示すために、簡単な例を示します:
入力:
select note_text from productnotes where match(note_text) against('anvils' in boolean mode);
出力:
分析: この全文検索は、単語を含むすべての行 (2 行あります) を取得します。重い。キーワード IN BOOLEAN MODE が使用されていますが、実際にはブール演算子が指定されていないため、結果はブール モードが指定されていない場合と同じになります。
IN BOOLEAN MODE の動作の違い この例の結果は IN BOOLEAN MODE を使用しない場合と同じですが、その動作には重要な違いがあります (この特定の例では示されていませんが)。
heavy を含むが、rope で始まる単語が含まれていない行を照合するには、次のクエリを使用します。
入力:
select note_text from productnotes where match(note_text) against('heavy -rope' in boolean mode);
出力:
分析: 今回は 1 行だけが返されます。今回は単語「heavy」が引き続き一致しますが、 -rope* は明示的に MySQL に、rope* (ropes を含む、rope で始まるすべての単語) を含む行を除外するよう指示します。これが、前の例の最初の行が除外された理由です。
MySQL 4.x で必要なコード変更 MySQL 4.x を使用している場合、上記の例では行が返されない可能性があります。これは * 演算子の処理におけるバグです。この例を MySQL 4.x で使用するには、 -rope* の代わりに -ropes を使用します (rope で始まる単語を除外するのではなく、ropes を除外します)。
2 つの全文検索ブール演算子 - と * , - は単語を除外しますが、 * は切り捨て演算子です (単語の終わりのワイルドカードと考えてください)。次の表は、サポートされているすべてのブール演算子のリストです。
特定の演算子の使用方法の例をいくつか示します:
入力:
select note_text from productnotes where match(note_text) against('+rabbit +bait' in boolean mode);
分析: この検索は、rabbit と Bait という単語を含む行と一致します。
入力:
select note_text from productnotes where match(note_text) agains('rabbit bait' in boolean mode);
分析: 演算子を指定しないと、この検索は、「rabbit」と「bait」の少なくとも 1 つの単語を含む行と一致します。
入力:
select note_text from productnotes where match(note_text) agains('"rabbit bait"' in boolean mode);
分析: この検索は、rabbit と Bait という 2 つの単語ではなく、rabbitbait というフレーズと一致します。
入力:
select note_text from productnotes where match(note_text) agains('>rabbit <bcarrot' in boolean mode);
分析: ウサギとニンジンを一致させ、前者のレベルを上げ、後者のレベルを下げます。
入力:
select note_text from productnotes where match(note_text) agains('+safe +(<combination)' in boolean mode);
分析: この検索は単語「safe」と「combination」に一致し、後者のランクを下げます。
並べ替えずに並べる ブール モードでは、返された行をランク値の降順で並べ替えません。
以上がmysql ブール値テキスト検索のチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。