一、概述
MySQL中的全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。
二、语法
MATCH (col1,col2,...) AGAINST (expr [search_modifier])
search_modifier: { IN BOOLEAN MODE | WITH QUERY EXPANSION }
# 例如
SELECT * FROM tab_name WHERE MATCH (col1,col2) AGAINST (search_word);
旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。
不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引。
三、检索方式
上面的search_modifier是全文索引的检索方式,MySQL中有三种类型的全文检索:
1、自然语言检索
全文检索中的默认类型。把查询字符串作为一个短语,如果有不少于50%的行匹配,则认为没有匹配的。想去掉50%的限制,可以修改文件myisam/ftdefs.h里的#define GWS_IN_USE GWS_PROB为#def