わかりました、私はついにこれを理解しました。 myisamストップワードはすでにクリアされているようですが、innodbストップワードはクリアされていません。 myisamよりも少し難しいですが、それを必要とする可能性のある他の人のための手順は次のとおりです。
/etc/my.cnf(またはWindowsの場合はmy.ini)に次の行を追加します。
ストップワードテーブルを作成します。 settings
というデータベースで作成しました innodb-stopwords
というテーブル 。 innodb_ft_enable_stopword = 0
を設定するだけでは不十分です。 、テーブルを作成してリンクする必要があります。
テーブルがinnodbであることを確認し、value
という列を追加します 、varchar(?)、utf8_general_ci。空のままにするか、テーブルに値を追加できます。
innodb_ft_enable_stopword = 1
innodb_ft_server_stopword_table = settings/innodb-stopwords
mysqlサーバーを再起動します。
フルテキストインデックスを削除して再作成します。
サーバーを再起動したくない場合は、変数を動的に設定できます(また、次のサーバーの再起動のためにcnf / iniファイルを更新します)
--innodb_ft_enable_stopword=1
--innodb_ft_server_stopword_table=db_name/table_name
インデックスを再作成するための回避策はありません...1つのコマンドで実行できるため、テーブルは常にロックされ、ユーザーにエラーは発生しません。
ALTER TABLE `tablename` DROP INDEX indexname, ADD FULLTEXT(`columnname`);