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 作为备份