我正尝试在我的表格中搜索一些手机,并尝试通过全文搜索获得结果。我的查询是:
SELECT id,itemid,title,MATCH(title) AGAINST
("SAMSUNG GALAXY S3" IN NATURAL LANGUAGE MODE) as score
FROM `deals`WHERE MATCH(title) AGAINST
("SAMSUNG GALAXY S3" IN NATURAL LANGUAGE MODE) ORDER BY score desc;
我得到的结果如下图所示:
我期望的是第二个结果出现在顶部,因为它是完全匹配的,但事实并非如此。有人可以纠正我在这里可能做错了什么。
谢谢。
编辑 bool 模式的结果
最佳答案
恐怕“S3”太短,无法被全文搜索视为一个词。 请参阅文档的相关部分(默认的最小字长为 4 个字符)http://dev.mysql.com/doc/refman//5.5/en/server-system-variables.html#sysvar_ft_min_word_len
EDIT 您可以通过搜索来验证这一点,例如:
"SAMSUNG GALAXY S360"
关于MySQL全文搜索结果相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080900/