我在理解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。
答案 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%"