mysql - 停用词和 MySQL bool 全文

标签 mysql full-text-search stop-words

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

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

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

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

预先感谢您的帮助,

特拉维斯

最佳答案

我遇到了这个问题,并通过谷歌搜索找到了这篇文章(一年多后)我也在一个共享主机上,并且正在为 mysql 中设置的停用词拉扯我的头发。我找到了一个非常适合我的解决方法,希望它也能对其他人有用。

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

SELECT * FROM table WHERE column REGEXP 'searchterm'

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

关于mysql - 停用词和 MySQL bool 全文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847899/

相关文章:

javascript - 全文搜索本地/离线网络 "site"

ruby-on-rails - pg_search 搜索词的精确匹配

java - 如何将选择列添加到显示搜索结果的 JTable

mysql - Grails 或 Hibernate 未创建丢失的表

ruby - 我如何要求Tire仅在Elasticsearch得分高于1时返回

python - 如何在Python中获取列表值和计数

C# 停止词 Dictionaryfom String

php - 如何从mysql表中选择多个枚举值?

mysql - 来自其他 SELECT 的变量 LIMIT

NLP - 为什么 "not"是停用词?