残念ながら、ユーザによる調整が可能な全文検索のパラメータは現在のところ少ししかありません。しかし、調整可能なパラメータの追加は、TODO リストにおいて優先度の高い位置にランクされています。MySQL ソースディストリビューション(see 項2.3. 「MySQL ソースディストリビューションのインストール」)がある場合は、全文検索の動作をより詳細に制御できます。
注意: 全文検索は検索の効率を良くするよう入念に調整されています。デフォルトの動作を変更すると、多くの場合、結果的に検索結果が悪くなります。MySQL のソースは、十分な知識がない限り変更しないでください。
以下に説明するフルテキスト変数は、サーバの起動時に設定されていなければなりません。サーバの稼動中にこれらの変数を動的に変更することはできません。
インデックスを作成するワードの最小長は、MySQL
変数 ft_min_word_len
で定義される。 See
項4.6.8.4. 「SHOW VARIABLES
」。 (この変数は MySQL
バージョン 4.0 以降でのみ使用できる)。
デフォルト値は 4 文字。
この値を必要な値に変更して、FULLTEXT
インデックスを再ビルドする。 たとえば、3
文字のワードを検索可能にするには、オプションファイルに以下の行を書き込むことによってこの変数を設定する。
[mysqld] ft_min_word_len=3
その後、サーバを再起動して、FULLTEXT
インデックスを再ビルドする。
ストップワードリストは、ft_stopword_file
変数に指定したファイルからロードすることができる。
See 項4.6.8.4. 「SHOW VARIABLES
」。
ストップワードリストを変更した後、FULLTEXT
インデックスを再ビルドする(この変数は
MySQL バージョン 4.0.10
以降でのみ使用できる)。
50%
のしきい値は、選択されている特定の重み付け設定で決められている。
これを無効にするには、myisam/ftdefs.h
の次の行を変更する。
#define GWS_IN_USE GWS_PROB
次のように変更する。
#define GWS_IN_USE GWS_FREQ
その後、MySQL を再コンパイルする。
この場合、インデックスを再ビルドする必要はない。
注意:
この設定によって、MATCH()
関数で適切な関連性を示す値が得られるようにする
MySQL
の機能が大幅に弱くなる。
実際にこのような一般的な語を検索する必要がある場合は、むしろ、IN
BOOLEAN MODE
を使用して検索を行う方が良い。この場合、50%
のしきい値が考慮されない。
検索エンジンの管理者が、ブール値のフルテキスト検索に使用する演算子を変更したくなることもある。これらの演算子は
ft_boolean_syntax
変数で定義される。 See
項4.6.8.4. 「SHOW VARIABLES
」。
しかし、この変数は読み取り専用であり、値は
myisam/ft_static.c
に設定されている。
FULLTEXT
インデックスの再構築が必要になるフルテキスト関連の変更の場合、MyISAM
テーブルに対してこれを行う最も簡単な方法は、インデックスファイルを再ビルドする次のステートメントを使用することです。
mysql> REPAIR TABLE tbl_name QUICK;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.