MySQL查询关键字的MATCH

时间:2012-11-07 17:19:43

标签: mysql

我在理解MySql中的MATCH时遇到了麻烦。我在“关键字”字段上有一个包含全文索引的表格。关键字以逗号分隔。

我正在测试3行,关键字为:prep,rat,mouse

当我搜索“prep”或“rat”时,我得到了我想要的结果。但如果我搜索“鼠标”,我就没有结果。这是我正在使用的查询:

SELECT *, MATCH(Keywords) AGAINST('mouse') AS Score
FROM fs_Files
WHERE MATCH(Keywords) AGAINST('mouse')
ORDER BY score DESC;

我在“鼠标”之后尝试过使用IN BOOLEAN MODE,但结果相同。

修改 在我使用“鼠标”这个词的数据库条目中,我实际上使用了“mus”这个词(这是挪威语中的鼠标)。我发现,如果我把它改成'musebart'(只是把这个词改成了),搜索就会把它拿起来。只有3个字符可能太短吗? MySql是否忽略它(停用词?),因为它只包含3个字符?

再次编辑: Bingo,它必须至少有4个字符才能被搜索。否则,您必须更改它(如果您有权这样做)链接:http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

1 个答案:

答案 0 :(得分:0)

match当然与like类似,但有些不同。

我的意思是:

SELECT *, MATCH(Keywords) AGAINST('mouse') AS Score
FROM fs_Files
WHERE MATCH(Keywords) AGAINST('mouse')
ORDER BY score DESC;

可能也是

SELECT *, MATCH(Keywords) AGAINST('mouse') AS Score
FROM fs_Files
WHERE Keywords like '%mouse%'
ORDER BY score DESC;

看看Mysql Match:http://dev.mysql.com/doc/refman/5.0/es/fulltext-search.html

看看它们之间的区别(匹配等):Mysql match...against vs. simple like "%term%"