FULLTEXT mysql搜索无法正常工作

时间:2014-08-28 02:29:30

标签: mysql full-text-search

如果我搜索单词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 

1 个答案:

答案 0 :(得分:1)

如果您要使用全文搜索,则需要了解停用词和最小字长。

开始的地方是documentation

简短的回答是"你好"是一个默认的停用词(记录为here)。并且,忽略短于4个字符的单词(例如"非")。默认的最小字长记录为4 here

相关问题