10bet网址
MySQL 5.6リファレンスマニュアル
本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb
HTML下载(TGZ)- 7.2 mb
HTML下载(邮政编码)- 7.2 mb


12.9全文検索関数

匹配(col1col2,……)反对(exprsearch_modifier])

search_modifier:{在自然语言模式下的|在自然语言模式下的|在布尔模式下的|在查询展开}

MySQLでは,次のような全文インデックス設定および検索がサポートされています。

  • MySQLの全文インデックスは,型全文のインデックスです。

  • 全文インデックスは,InnoDBまたはMyISAMテーブルでのみ使用でき,字符VARCHAR,または文本カラムにのみ作成できます。

  • 全文インデックスの定義は,テーブルの作成時に创建表ステートメントで指定することも,あとでALTER TABLEまたは创建索引を使用して追加することもできます。

  • データセットが大きい場合は,全文インデックスが付いていないテーブルにロードしてから,そのあとでインデックスを作成した方が,既存の全文インデックスが付いているテーブルにロードするよりも断然速いです。

全文検索は,匹配()……对構文を使用して実行されます。匹配()には,検索対象のカラム名をカンマで区切ったリストを指定します。には,検索する文字列と,実行する検索のタイプを示すオプションの修飾子を指定します。検索文字列は,クエリー評価時に定数である文字列値にする必要があります。たとえば,テーブルカラムは,行ごとに異なる可能性があるため除外されます。

全文検索には,次の3つの種類があります。

  • 自然言語の検索では,検索文字列が人間の自然な言語でのフレーズ(フリーテキストのフレーズ)として解釈されます。特別な演算子はありません。ストップワードリストが適用されます。これらは,InnoDB検索インデックスの場合はinnodb_ft_enable_stopwordinnodb_ft_server_stopword_table,およびinnodb_ft_user_stopword_tableMyISAM検索インデックスの場合はft_stopword_fileによって制御されます。詳細は,セクション12.9.4”全文ストップワード”を参照してください。

    在自然语言模式下修飾子が指定されている場合または修飾子がまったく指定されていない場合は,全文検索が自然言語検索になります。詳細は,セクション12.9.1”自然言語全文検索”を参照してください。

  • ブール検索では,特別なクエリー言語のルールを使用して検索文字列が解釈されます。文字列には,検索対象の単語が含まれます。また,一致する行に単語が存在しなければならない,または存在してはならないように,あるいは通常よりも単語の重みが高くまたは低くなるように,要件を指定する演算子を含めることもできます。特定の共通単語(ストップワード)は,検索インデックスから省略され,検索文字列に存在しない場合は一致が行われません。在布尔模式修飾子は,ブール検索を指定します。詳細は,セクション12.9.2”ブール全文検索”を参照してください。

  • クエリー拡張検索は,自然言語検索を改善したものです。自然言語検索を実行する際は,検索文字列が使用されます。その後,検索で返されたもっとも関連性の高い行からの単語が検索文字列に追加され,再度検索が実行されます。クエリーでは2回目の検索からの行が返されます。在自然语言模式下进行查询扩展または与查询扩展修飾子は,クエリー拡張検索を指定します。詳細は,セクション12.9.3”クエリー拡張を使用した全文検索”を参照してください。

全文クエリーのパフォーマンスについては,セクション8.3.4”カラムインデックス”を参照してください。

InnoDB全文インデックスの処理に関するより技術的な詳細は,セクション14.2.13.3”全文インデックス”を参照してください。

全文検索上の制約については,セクション12.9.5”全文制限”に一覧表示されています。

myisam_ftdumpユーティリティーは,MyISAM全文インデックスの内容をダンプします。これは,全文クエリーのデバッグ時に役立つことがあります。セクション4.6.2”myisam_ftdump——全文インデックス情報の表示”を参照してください。