Mysql利用match...against进行全文检索

时间:2022-09-19 19:02:54

在电商项目中,最核心的功能之一就是搜索功能,搜索做的好,整个电商平台就是个优秀的平台。一般搜索功能都使用搜索引擎如Lucene、solr、elasticsearch等,虽然这功能比较强大,但是对于一些小公司或者小的电商平台项目有点大材小用了,对于小项目我们可以采用折中的方法,使用ik+MySQL的搜索引擎进行查询,ik用于分词,mysql利用match和against函数进行模糊查询。先写下mysql的match和against的用法。

1 1、给mm_product表name,label字段添加fulltext索引。  
2 ALTER TABLE `mm_product`
3 ADD FULLTEXT INDEX `name1` (`name`);
4 ALTER TABLE `mm_product`
5 ADD FULLTEXT INDEX 'label1' ('label');

 

1 2、使用match和against函数  
2 select * from mm_product where match(name,label) against('白猫 洗洁精');
在SELECT的WHERE字句中用MATCH函数,索引的关键词用AGAINST标识,IN BOOLEAN MODE是只有含有关键字就行,不用在乎位置,是不是起启位置.