【问题标题】:set new value for "ft_min_word_len " FULLTEXT in mysql在 mysql 中为“ft_min_word_len”FULLTEXT 设置新值
【发布时间】:2013-02-01 12:51:56
【问题描述】:

我通过位于我的系统路径"C:\Program Files\MySQL\MySQL Server 5.1" 中的my-innodb-heavy-4G.ini 更改为"ft_min_word_len" = 4,但是当我运行时

SHOW VARIABLES LIKE 'ft_min_word_len'

我仍然得到结果value= 4。我在my.ini 文件中没有找到这个变量。所以我也创造了我的逻辑。我复制到ft_min_word_len 变量并放入my.ini 文件,现在我的结果显示value=3

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

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

【问题讨论】:

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


    【解决方案1】:

    您应该更改此系统参数,重新启动服务器,然后重建所有 FULLTEXT 索引。

    REPAIR TABLE <TableName> QUICK;
    

    【讨论】:

    • 感谢您的回复,我刚刚完成了所有活动,但没有工作 :(。我使用的是 Windows。我的目录 C:\Program Files\MySQL\MySQL Server 5.1。我没有进入我的.ini。我在 my-innodb-heavy-4G.ini 文件中找到了它。请先生检查一下。谢谢
    • 谢谢你。我也改变了 wamp 服务器 mysql 。我忘了它:)
    • MySql InnDB 说不支持修复。
    • 这里描述了如何为inno db表重建索引:dev.mysql.com/doc/refman/5.7/en/…
    【解决方案2】:

    这是我用来获取所有需要的修复命令的方法:

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

    【讨论】:

      【解决方案3】:

      我认为您应该尝试通过删除索引来更改表并再次添加索引。一定会成功的。

      【讨论】:

        【解决方案4】:

        我刚刚遇到并解决了我自己的类似问题。我的问题是我需要编辑以更改 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 文件都会覆盖之前的设置。显然不是。

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

        【讨论】:

          【解决方案5】:

          您可以直接删除并添加 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;
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-06-08
            • 1970-01-01
            • 1970-01-01
            • 2019-09-17
            • 2012-03-08
            • 2011-02-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多