システムパス"ft_min_Word_len" = 4
にあるmy-innodb-heavy-4G.ini
によって"C:\Program Files\MySQL\MySQL Server 5.1"
に変更しましたが、実行すると
SHOW VARIABLES LIKE 'ft_min_Word_len'
まだ結果value= 4
が得られました。 my.ini
ファイルでこの変数が見つかりませんでした。だから私も私のロジックを作成しました。 ft_min_Word_len
変数にコピーし、my.ini
ファイルに配置すると、結果にvalue=3
が表示されます。
ただし、3文字の検索では機能しません。サーバーを再起動しました。
3文字の値も検索できるようにするにはどうすればよいですか。
このシステムパラメータを変更し、サーバーを再起動してから、すべてのFULLTEXTインデックスを再構築する必要があります。
REPAIR TABLE <TableName> QUICK;
これは、必要なすべての修復コマンドを取得するために使用するものです。
SELECT DISTINCT CONCAT("REPAIR TABLE `", TABLE_SCHEMA, "`.`",
TABLE_NAME, "` QUICK;") FROM information_schema.STATISTICS
WHERE index_type = 'FULLTEXT';
インデックスを削除してテーブルを変更し、もう一度インデックスを追加してみてください。きっとうまくいくでしょう。
FULLTEXTインデックスをドロップして追加するだけです
または段階的に実行して、事前にどれだけ大きくなるかを確認します
CREATE TABLE models_new LIKE models;
ALTER TABLE models_new DROP INDEX name;
ALTER TABLE models_new ADD FULLTEXT name (name);
ALTER TABLE models_new DISABLE KEYS;
INSERT INTO models_new SELECT * FROM models;
ALTER TABLE models_new ENABLE KEYS;
ALTER TABLE models RENAME models_old;
ALTER TABLE models_new RENAME models;
私はちょうど私自身の同様の問題を抱えて解決しました。私の場合の問題は、ft_min_Word_len変数を変更するために編集する必要のあるmy.iniファイルが、Windows 7ではデフォルトで非表示/保護されているディレクトリにあったことです。つまり、 "c:/ programdata/mysql/mysql server 5.7 "。
Windowsファイルエクスプローラーと検索では、フォルダーオプションに移動し、隠しファイル/フォルダー(および場合によっては保護されたオペレーティングシステムファイル-両方を実行)を表示するように指定するまで、この場所は表示されません。
最初に、Program Files/MySQL Server5.7でmy.cnfファイルを作成しました。しかし、サーバーを再起動したとき、ft_min_Word_len変数は変更されていませんでした。次に、エラーが発生するはずだとわかっているランダムなテキストを入力しましたが、サーバーは通常どおり起動しました。 MySQLクライアントシェルからのヘルプテキストで指定された場所の1つにあったにもかかわらず、MySQLがファイルを読み取っていなかったようです。
私の考えでは、MySQLサーバーはヘルプテキストで指定された順序で.cnf/.iniファイルの検索を開始しますが、有効なファイルが見つかると検索を停止します。単なる理論ですが、他の場所で構成ファイルを認識していなかったのは確かです。
新しいCSSファイルが以前の設定を上書きするCSSのようなものだと思いました。明らかにそうではありません。
とにかく、これが同じ問題に遭遇した他の人の助けになることを願っています。