1

我在理解 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 个字符?

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

4

1 回答 1

1

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 匹配:http ://dev.mysql.com/doc/refman/5.0/es/fulltext-search.html

看看它们之间的区别(匹配和喜欢):Mysql match...对抗简单的like "%term%"

于 2012-11-07T18:39:58.990 回答