установить новое значение для ft_min_word_len FULLTEXT в mysql

Я изменил на "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.

Но он не работает для поиска по трем символам. Я перезапустил сервер.

Как я могу добиться, чтобы иметь возможность также искать значение из трех символов.


person Rahul Rawat    schedule 01.02.2013    source источник


Ответы (5)


Вам следует изменить этот системный параметр, перезапустить сервер, а затем перестроить ВСЕ ПОЛНОТЕКСТОВЫЕ индексы.

REPAIR TABLE <TableName> QUICK;
person valex    schedule 01.02.2013
comment
спасибо за ваш ответ, я только что сделал все действия, но не работал :(. я использую Windows. мой каталог C:\Program Files\MySQL\MySQL Server 5.1. я не попал в my.ini. я получил его в моем Файл -innodb-heavy-4G.ini. Пожалуйста, проверьте его. Спасибо. - person Rahul Rawat; 01.02.2013
comment
Спасибо . я также изменил в wamp server mysql. я забыл об этом :) - person Rahul Rawat; 01.02.2013
comment
MySql InnDB говорит, что ремонт не поддерживается. - person Allen King; 15.04.2017
comment
Здесь описано, как перестроить индексы для таблиц inno db:dev.mysql.com/doc/refman/5.7/en/ - person user2345998; 23.08.2017

Это то, что я использую для получения всех необходимых команд восстановления:

SELECT DISTINCT CONCAT("REPAIR TABLE `", TABLE_SCHEMA, "`.`", 
TABLE_NAME, "` QUICK;") FROM information_schema.STATISTICS 
WHERE index_type = 'FULLTEXT';
person pevik    schedule 21.01.2014

Я думаю, вам следует попробовать изменить таблицу с помощью индекса удаления и снова добавить индекс. Это обязательно сработает.

person engineer2014    schedule 15.09.2013

Я только что имел и решил подобную проблему самостоятельно. Проблема в моем случае заключается в том, что файл my.ini, который мне нужно было отредактировать, чтобы изменить переменную ft_min_word_len, находился в каталоге, который по умолчанию скрыт/защищен в Windows 7. Это: "c:/programdata/mysql/mysql server 5.7 ".

Проводник Windows и поиск не показывают это местоположение, пока вы не войдете в параметры папки и не укажете, что хотите видеть скрытые файлы / папки (и, возможно, защищенные файлы операционной системы — я сделал и то, и другое).

Первоначально я создал файл my.cnf в папке Program Files/MySQL Server 5.7. Но когда я перезапустил сервер, переменная ft_min_word_len не изменилась. Затем я набрал какой-то случайный текст, который, как я знал, должен вызвать ошибку, но сервер запустился как обычно. Похоже, что MySQL не читал файл, хотя он находился в одном из мест, указанных в тексте справки клиентской оболочки MySQL.

Я думаю, что сервер MySQL начинает поиск файлов .cnf/.ini в порядке, указанном в тексте справки, но как только он находит действительный файл, прекращает поиск. Просто теория, но я могу точно сказать, что он не распознавал файлы конфигурации в других местах, где должен был искать.

Я подумал, что это похоже на CSS, где каждый новый файл CSS переопределяет настройки предыдущего. Очевидно, нет.

В любом случае, я надеюсь, что это поможет любому, кто столкнется с той же проблемой.

person greggb    schedule 31.12.2015

Вы можете просто удалить и добавить индекс 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;
person Mahedi Hasan    schedule 28.04.2015