4

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

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

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

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

在此先感谢您的帮助,

特拉维斯

4

2 回答 2

3

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

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

SELECT * FROM table WHERE column REGEXP 'searchterm'

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

于 2012-04-01T15:51:47.390 回答
0

Forget it, the change of mysql full-text setting require a restart
details - http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

note that Dynamic column is marked as NO for ft_stopword_file

However, is no harm to check with your hosting service provider...

If it do restart for you, you can use the following to repair your table full-text

mysql> REPAIR TABLE tbl_name QUICK;
于 2011-01-31T05:44:52.990 回答