MySQL自然语言搜索停用词的行为,尽管有停用词仍显示结果?

时间:2012-02-10 23:31:54

标签: mysql

所以我有一个MySQL数据库,里面有一个公司名称表。例如

AES Corp

我输入了我的stopwords.txt

Corp

然而,当我进行全文搜索时,它仍会返回这样的结果,

select * from companies where MATCH(listOfCompanies.name) AGAINST('AES Corp');

SHANGHAI FOREIGN TRADE CORP. PU D
GFT USA CORP. 
GFT USA CORP. 
QET, CORP. 
FUN-4-ALL CORP. 

它不应该返回任何结果,因为我过滤掉了Corp因此它只是试图匹配AES吗?或者我误解了全文检索的工作原理?

2 个答案:

答案 0 :(得分:0)

我认为您误解了AGAINST关键字。查看您链接的页面上提供的示例查询 - 关键字出现在两个结果行中。 AGAINST不会使用指定的关键字过滤掉结果,而是反过来 - 查看指定的列以确保匹配:http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

答案 1 :(得分:0)

我已经弄清楚我做错了什么,这是一个非常尴尬的错误。搜索实际上是按配置工作的,我只是使用脚本来解析和上传数据,它使用的是UPDATE,因此它实际上并没有删除旧的结果。我应该把桌子倒空,让它重新填充。