在mysql中为“ft_min_word_len”FULLTEXT设置新值

时间:2013-02-01 12:51:57

标签: mysql full-text-search database-administration fulltext-index

我更改为"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

但它不适用于三个字符搜索。我重新启动了服务器。

如何才能实现能够搜索三个字符值。

5 个答案:

答案 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文件都覆盖了之前的设置。显然不是。

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