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

Posted UniqueColor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql利用match...against进行全文检索相关的知识,希望对你有一定的参考价值。

在电商项目中,最核心的功能之一就是搜索功能,搜索做的好,整个电商平台就是个优秀的平台。一般搜索功能都使用搜索引擎如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是只有含有关键字就行,不用在乎位置,是不是起启位置.

以上是关于Mysql利用match...against进行全文检索的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL模糊查询优化(使用全文索引进行左右模糊查询) match() against ()的简单使用以及介绍

MySQL match() against() - 按相关性和列排序?

MySQL MATCH() AGAINST() 等效于 SQL Server

MySQL 部分单词匹配结合 MATCH...AGAINST 和 LIKE 作为备份

mysql全文索引用于 MATCH() AGAINST 但不用于 =

mysql 全文模糊搜索MATCH AGAINST方法