停用词和MySQL布尔全文

时间:2011-01-31 05:27:46

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

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

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

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

我想知道是否有人就如何处理上述问题有任何建议? (不升级到VPS或专用系统)

先谢谢你的帮助,

特拉维斯

2 个答案:

答案 0 :(得分:3)

我遇到了这个问题并且在这篇文章中进行了谷歌搜索(一年之后)我也在共享主机上,并且正在将我的头发拉过mysql中设置的停止词。我找到了一个对我来说完美的解决方法,希望它对其他人也有用。

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

SELECT * FROM table WHERE column REGEXP 'searchterm'

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

答案 1 :(得分:0)

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

请注意,动态列标记为ft_stopword_file

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

如果它重新启动,您可以使用the following to repair your table full-text

mysql> REPAIR TABLE tbl_name QUICK;