#######################
1).MySQL中的全文索引是FultLeXT类型的索引。 2).全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR、TEXT列创建。 3).在MySQL 5.7.6中,MySQL提供了支持中文、日文和韩文(CJK)的内置全文ngram解析器,以及用于日文的可安装MeCab全文解析器插件 4).当创建表时,可以在CREATE TABLE语句中给出FULLTEXT索引定义,或者稍后使用ALTER TABLE或CREATE INDEX添加该定义。 5).对于大型数据集,将数据加载到没有FULLTEXT索引的表中然后创建索引要比将数据加载到具有现有FULLTEXT索引的表中快得多。
全文索引的三种类型:
- 自然语言搜索将搜索字符串解释为自然语言中短语。
- 布尔全文搜索
- 查询扩展搜索
建表时添加:
CREATE TABLE `movie` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `data_id` bigint(20) DEFAULT NULL, `license_data_id` varchar(48) DEFAULT NULL, `cp_data_id` varchar(64) NOT NULL, `create_time` datetime NOT NULL, `update_time` datetime NOT NULL, `publish_time` datetime DEFAULT NULL, `publish_status` smallint(5) unsigned NOT NULL, `title` varchar(170) NOT NULL, PRIMARY KEY (`id`), fulltext key `idx_title` (`title`) /*!50100 WITH PARSER `ngram` */ ) ENGINE=InnoDB AUTO_INCREMENT=24298231 DEFAULT CHARSET=utf8mb4
建表后添加添加:
alter table `short_movie` add fulltext index `idx_title`(`title`) with parser `ngram`;
alter table apple add fulltext index title_body_index (title,body) with parser ngram;
支持中文等亚洲语种的内置全文ngram解析器:with parser ngram ,如果是英文,则不需要
######################