如果我搜索单词hello
,那么我没有匹配,而我搜索单词hella
然后我得到了匹配。同样的事情发生在Non
这个词上。我在Mac和sqlfiddle.com上的MAMP上测试了相同的结果。你知道为什么吗?
这是测试:http://sqlfiddle.com/#!2/40658/1
CREATE TABLE IF NOT EXISTS `product` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`name` TEXT default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
INSERT INTO `product` (`name`) VALUES ("hello SANYO MC-1234");
INSERT INTO `product` (`name`) VALUES ("hella SANYO MC-1234");
INSERT INTO `product` (`name`) VALUES ("Non SONY");
INSERT INTO `product` (`name`) VALUES ("mac SONY");
得到1场比赛:
SELECT *, MATCH (`name`) AGAINST ('+hella*' IN BOOLEAN MODE) as `score` FROM `product` WHERE MATCH (`name`) AGAINST ('+hella*' IN BOOLEAN MODE) ORDER BY `score` DESC
得到0匹配:
SELECT *, MATCH (`name`) AGAINST ('+hello*' IN BOOLEAN MODE) as `score` FROM `product` WHERE MATCH (`name`) AGAINST ('+hello*' IN BOOLEAN MODE) ORDER BY `score` DESC
答案 0 :(得分:1)
如果您要使用全文搜索,则需要了解停用词和最小字长。
开始的地方是documentation。
简短的回答是"你好"是一个默认的停用词(记录为here)。并且,忽略短于4个字符的单词(例如"非")。默认的最小字长记录为4 here。