Ответ 1
Вы должны изменить этот системный параметр, перезапустить сервер, а затем перестроить ВСЕ индексы FULLTEXT.
REPAIR TABLE <TableName> QUICK;
Я изменил на "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
.
Но он не работает для трехзначного поиска. Я перезапустил сервер.
Как я могу достичь, чтобы иметь возможность искать и трехзначное значение.
Вы должны изменить этот системный параметр, перезапустить сервер, а затем перестроить ВСЕ индексы FULLTEXT.
REPAIR TABLE <TableName> QUICK;
Это то, что я использую для получения всех необходимых команд восстановления:
SELECT DISTINCT CONCAT("REPAIR TABLE `", TABLE_SCHEMA, "`.`",
TABLE_NAME, "` QUICK;") FROM information_schema.STATISTICS
WHERE index_type = 'FULLTEXT';
Думаю, вам стоит попробовать изменить индекс по индексу drop и снова добавить индекс. Это, безусловно, будет работать.
Вы можете просто удалить и добавить индекс 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;
Я просто решил и решил аналогичную проблему. Проблема в моем случае состоит в том, что файл 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 переопределяет настройки в предыдущем. Очевидно, нет.
В любом случае, я надеюсь, что это поможет любому, кто сталкивается с той же проблемой.