【问题标题】:How to reset stop words in MYSQL?如何重置 MYSQL 中的停用词?
【发布时间】:2010-10-22 06:05:17
【问题描述】:

我想重置 mysql 中的停用词列表以进行全文搜索。我已经在我的系统中安装了 WAMP 服务器,它有 phpmyadmin 来访问 mysql。但我不知道如何在 phpmyadmin 中重置停用词。谁能告诉我该怎么做。

我也http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_ft_stopword_file看了这个链接但是不知道怎么用???

【问题讨论】:

  • “重置”如“禁用”停用词,或如“更改”停用词?

标签: mysql database search full-text-search stop-words


【解决方案1】:

您可以在此处找到要使用的停用词列表:https://dev.mysql.com/doc/refman/5.6/en/fulltext-stopwords.html。我将此列表保存到一个文件并从 MySQL 配置文件中引用它(例如ft_stopword_file='path/to/stopword_file.txt')。

我从停用词列表中删除了“it”和“us”,因为它们在我的问题域中表示“Information Technology”和“United States”。

不幸的是,每次更改停用词列表时,都必须重新启动 MYSQL 并重建全文索引。

【讨论】:

  • 链接已损坏。
【解决方案2】:

我遇到了同样的问题。 停用词文件必须包含在 my.ini 文件的 [mysqld] 部分下。

[mysqld] ft_stopword_file = 'D:/stop.txt' 然后

repair table tablename 为我工作。

【讨论】:

    【解决方案3】:

    MySQL 附带的停用词列表(至少对于 MyISAM)可以在 MySQL 的源代码中找到,地址为 myisam/ft_static.c

    另请注意,这些只是“英语”停用词。据推测,其他语言的停用词在其他地方定义......

    您可以使用 cmets 中指出的 ft_stopword_file 指令覆盖或禁用默认停用词列表。 Full documentation here.

    【讨论】:

    • 我想知道如何禁用或更改停用词列表。文章中没有给出....
    • 你不需要 - 你只需要添加/编辑 my.conf。要使用您自己的自定义 stopwords.txt: ft_stopword_file='path/to/stopword_file.txt' 或禁用: ft_stopword_file="" 您需要重建索引,使用 REPAIR 或删除并读取它们。
    【解决方案4】:

    我也遇到了同样的问题,我认为你不需要重新编译任何东西,我读过你可以使用 mysql 控制台 SET ft_stopword_file='path/to/stopword_file.txt',不需要重新启动你的服务器。但我不认为它会持续到下次重启,所以我想我会尝试配置文件,看看它是否有效

    【讨论】:

      【解决方案5】:

      我假设您使用的是WampServer

      点击托盘图标,选择MySQL,然后点击my.ini。配置文件将在记事本中打开。转到文件末尾并添加这一行(在端口行之后):

       ft_stopword_file=''
      

      禁用停用词。如果要使用自定义停用词文件,请将该行替换为:

      ft_stopword_file='path/to/stopword_file.txt'
      

      (当然是设置停用词文件的路径)。

      设置该行后,保存配置文件(文件 -> 保存)。然后点击托盘图标,选择MySQL,然后选择Service,再点击Restart Service

      为确保您的配置正确完成,请在浏览器中打开phpMyAdmin,单击顶部的Variables 选项卡,然后找到ft stopword file 并查看为其设置的值。

      【讨论】:

      • 是的,我正在使用 Wampserver,感谢您的回答 :)
      • 我们是否只是用换行符分隔单词? mysql如何知道单词是如何分隔的?
      • @Aziz 请告诉我 stopword_file.txt 的结构是什么。
      • @eureka:每行一个单词就可以了。您还可以用逗号或空格分隔单词。
      • ft_stopword_file=''子句必须加在[mysqld]部分下,不一定要在文件末尾。
      猜你喜欢
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      • 2011-05-25
      • 2012-09-22
      • 2012-09-10
      相关资源
      最近更新 更多