14

システムパスにあるからに変更し"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文字の値も検索できるようにするにはどうすればよいですか。

4

5 に答える 5

24

このシステムパラメータを変更し、サーバーを再起動してから、すべてのFULLTEXTインデックスを再構築する必要があります。

REPAIR TABLE <TableName> QUICK;
于 2013-02-01T13:01:06.223 に答える
7

これは、必要なすべての修復コマンドを取得するために使用するものです。

SELECT DISTINCT CONCAT("REPAIR TABLE `", TABLE_SCHEMA, "`.`", 
TABLE_NAME, "` QUICK;") FROM information_schema.STATISTICS 
WHERE index_type = 'FULLTEXT';
于 2014-01-21T20:21:41.107 に答える
3

インデックスを削除してテーブルを変更し、もう一度インデックスを追加してみてください。きっとうまくいくでしょう。

于 2013-09-15T06:15:48.233 に答える
0

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;
于 2015-04-28T06:33:40.943 に答える
0

私はちょうど私自身の同様の問題を抱えて解決しました。私の場合の問題は、ft_min_word_len変数を変更するために編集する必要のあるmy.iniファイルが、Windows 7ではデフォルトで非表示/保護されているディレクトリにあったことです。つまり、 "c:/ programdata / mysql / mysql server 5.7 "。

Windowsファイルエクスプローラーと検索では、フォルダーオプションに移動し、隠しファイル/フォルダー(および場合によっては保護されたオペレーティングシステムファイル-両方を実行)を表示するように指定するまで、この場所は表示されません。

最初に、Program Files / MySQLServer5.7でmy.cnfファイルを作成しました。しかし、サーバーを再起動したとき、ft_min_word_len変数は変更されていませんでした。次に、エラーが発生することがわかっているランダムなテキストを入力しましたが、サーバーは通常どおりに起動しました。MySQLクライアントシェルのヘルプテキストで指定された場所の1つにあるにもかかわらず、MySQLがファイルを読み取っていなかったようです。

私の考えでは、MySQLサーバーはヘルプテキストで指定された順序で.cnf / .iniファイルの検索を開始しますが、有効なファイルが見つかると検索を停止します。単なる理論ですが、他の場所で構成ファイルを認識していなかったのは確かです。

新しいCSSファイルが以前の設定を上書きするCSSのようなものだと思いました。明らかにそうではありません。

とにかく、これが同じ問題に遭遇した他の人の助けになることを願っています。

于 2015-12-31T00:03:47.043 に答える