旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。
不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息要随时关注官网,
- 下载mySql5.7
MySql5.7
解决无法查询中文,修改配置文件
my.ini
[mysqld] ngram_token_size=2
建表同时加入全文检索
CREATE TABLE articles (
id INTUNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body) WITH PARSER ngram
) ENGINE=InnoDB CHARACTER SET utf8mb4;
- 修改方式添加全文检索
alter table testtable add fulltext index testfulltext(clumn1,clumn2) with parser ngram;
- 新建方式添加全文检索
CREATE FULLTEXT INDEX ft_email_name ON student
(name
) with parser ngram;` - 验证全文检索结果
SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('关键词' IN NATURAL LANGUAGE MODE);
- 关键字不能太短,小于两个字无法匹配