与SOLR相比,我尝试测试MySQL Fulltextsearch。我设置了一个InnoDB表,其中包含一个int-key和一个包含fulltextindex的longtext字段。
CREATE TABLE cvtext
(
id
int(11)NOT NULL AUTO_INCREMENT,
cvtext
longtext NOT NULL,
PRIMARY KEY(id
),
FULLTEXT KEY cvtext
(cvtext
)
)ENGINE = InnoDB AUTO_INCREMENT = 6 DEFAULT CHARSET = utf8;
顺便说一句 - 我使用的是MySQL 4.6.16和ft_min_word_len = 3。
我的问题是关于布尔搜索:
1)从cvtext中选择*,其中MATCH(cvtext)AGAINST('+ SQL') =>结果:
2)从cvtext中选择*,其中MATCH(cvtext)AGAINST('+ SQL + oracle') =>结果:
所以第一个查询是i.m.h.o.更正并仅返回包含SQL的记录。第二个查询应该这样做,因为我使用'+'但它也返回记录no 4.它不包含SQL。
任何想法可能是错误的或者我不理解查询逻辑?