我更改为"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
。
但它不适用于三个字符搜索。我重新启动了服务器。
如何才能实现能够搜索三个字符值。
答案 0 :(得分:20)
您应该更改此系统参数,重新启动服务器,然后重建所有FULLTEXT索引。
REPAIR TABLE <TableName> QUICK;
答案 1 :(得分:7)
这是我用于获取所有必需的修复命令的内容:
SELECT DISTINCT CONCAT("REPAIR TABLE `", TABLE_SCHEMA, "`.`",
TABLE_NAME, "` QUICK;") FROM information_schema.STATISTICS
WHERE index_type = 'FULLTEXT';
答案 2 :(得分:3)
我认为您应该尝试逐个删除索引并再次添加索引。它肯定会奏效。
答案 3 :(得分:0)
您可以删除并添加FULLTEXT索引
或分阶段进行,看看它会提前有多大
CREATE TABLE models_new LIKE模型;
ALTER TABLE models_new DROP INDEX name;
ALTER TABLE models_new ADD FULLTEXT名称(名称);
ALTER TABLE models_new DISABLE KEYS;
INSERT INTO models_new SELECT * FROM models;
ALTER TABLE models_new ENABLE KEYS;
ALTER TABLE模型RENAME models_old;
ALTER TABLE models_new RENAME模型;
答案 4 :(得分:0)
我刚刚解决了类似的问题。我的问题是,为了更改ft_min_word_len变量,我需要编辑的my.ini文件位于Windows 7中默认隐藏/保护的目录中。那个:&#34 ; c:/ programdata / mysql / mysql server 5.7&#34;。
Windows文件浏览器和搜索不显示此位置,直到您进入文件夹选项并指定您要查看隐藏文件/文件夹(以及可能受保护的操作系统文件 - 我同时执行这两项操作)。
最初我在Program Files / MySQL Server 5.7下创建了一个my.cnf文件。但是当我重新启动服务器时,ft_min_word_len变量没有改变。然后我输入了一些我知道应该触发错误的随机文本,但服务器启动时正常。 MySQL似乎没有读取该文件,即使它位于MySQL客户端shell的帮助文本中指定的位置之一。
我的想法是MySQL服务器开始按帮助文本中指定的顺序搜索.cnf / .ini文件,但一旦找到有效文件,就停止搜索。只是一个理论,但我可以肯定地说,它并没有认识到应该在其他地方查看配置文件。
我认为它就像CSS一样,每个新的CSS文件都覆盖了之前的设置。显然不是。
无论如何,我希望这会对遇到同样问题的其他人有所帮助。