MySQLの全文検索について
3種類有ります
自然言語検索
検索文字列が人間の自然な言語でのフレーズとして解釈されます。
特徴
特別な演算子は無い
ストップワードリストが適用される
動作
IN NATURAL LANGUAGE MODE 修飾子が指定されている場合または修飾子がまったく指定されていない場合は、全文検索が自然言語検索になる
ブール検索
特別なクエリー言語のルールを使用して検索文字列が解釈される。
特徴
文字列には、検索対象の単語が含まれる
一致する行に単語が存在しなければならない、または存在してはならないように、あるいは通常よりも単語の重みが高くまたは低くなるように、要件を指定する演算子を含めることもできます。
特定の共通単語 (ストップワード) は、検索インデックスから省略され、検索文字列に存在しない場合は一致が行われません。
動作
IN BOOLEAN MODE 修飾子が有る場合、ブール検索になります。
クエリー拡張検索
自然言語検索を改善したもの
特徴
自然言語検索を実行する際は、検索文字列が使用される。
その後、検索で返されたもっとも関連性の高い行からの単語が検索文字列に追加され、再度検索が実行される。
クエリーでは、2 回目の検索からの行が返されます。
動作
IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION または WITH QUERY EXPANSION 修飾子が有る場合は、クエリー拡張検索を行います。