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

但它不适用于三字符搜索。我已经重启了服务器。

我怎样才能实现也能够搜索三个字符值。

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/MySQL Server 5.7 下创建了一个 my.cnf 文件。但是当我重新启动服务器时, ft_min_word_len 变量并没有改变。然后我输入了一些我知道应该触发错误的随机文本,但服务器正常启动。似乎 MySQL 没有读取该文件,即使它位于 MySQL 客户端 shell 的帮助文本中指定的位置之一。

我的想法是 MySQL 服务器开始按照帮助文本中指定的顺序搜索 .cnf/.ini 文件,但是一旦找到有效文件,就会停止搜索。只是一个理论,但我可以肯定地说它没有识别它应该在其他地方寻找的配置文件。

我认为它就像 CSS,每个新的 CSS 文件都会覆盖之前的设置。显然不是。

无论如何,我希望这对遇到同样问题的其他人有所帮助。

于 2015-12-31T00:03:47.043 回答