【问题标题】:Stopwords and MySQL boolean fulltext停用词和 MySQL 布尔全文
【发布时间】:2011-06-18 09:18:13
【问题描述】:

我正在使用 mysql 内置的布尔全文功能来搜索数据集。 (匹配...反对语法)。

我遇到了一个问题,MySql 的默认停用词列表中的关键字没有返回任何结果。例如“之前”、“之间”等

(我认为)没有办法在运行时禁用 MySql 的停用词。而且因为我在共享服务器 (DreamHost) 上托管我的网站,所以我无法选择禁用停用词重新编译 MySQL。

我想知道是否有人对解决上述问题的方法有任何建议? (无需升级到 VPS 或专用系统)

提前感谢您的帮助,

特拉维斯

【问题讨论】:

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


    【解决方案1】:

    我遇到了这个问题,并在谷歌搜索时发现了这篇文章(一年多后),我也在一个共享主机上,并且对 mysql 中设置的停用词感到困惑。我找到了一个对我来说非常有效的解决方法,希望它对其他人也有用。

    您还可以使用REGEXP 命令来匹配表中的搜索词。

    SELECT * FROM table WHERE column REGEXP 'searchterm'

    我如何实现它是首先执行 MATCH AGAINST 语法,如果 count = 0 我执行 REGEXP 而不是给我的用户更多结果。由于停用词和最小长度,总比没有结果好。

    【讨论】:

      【解决方案2】:

      算了,修改mysql全文设置需要重启
      详情 - http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

      请注意,ft_stopword_file 的动态列标记为 NO

      但是,与您的托管服务提供商核实是没有害处的......

      如果它为你重启,你可以使用the following to repair your table full-text

      mysql> REPAIR TABLE tbl_name QUICK;
      

      【讨论】:

        猜你喜欢
        • 2011-05-25
        • 2011-01-20
        • 1970-01-01
        • 2015-08-22
        • 2011-09-12
        • 2023-02-21
        • 1970-01-01
        • 2012-09-22
        • 1970-01-01
        相关资源
        最近更新 更多