MyISAM引擎表和InnoDB引擎表(RDS MySQL 5.6版本)都支持中文全文检索。
MyISAM引擎表
MyISAM引擎表需要将ft_min_word_len设置为小于等于需要检索的最小分词长度,设置完毕后建议重新创建表上已有的全文索引。对于中文检索,建议将ft_min_word_len设置为1,否则可能出现查不到数据的情况,如下图所示。
重建全文索引示例
表结构如下所示。
CREATE TABLE `my_ft_test_02` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `idx_ft_name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
重建全文索引步骤。
1、执行如下SQL语句,删除已有的全文索引。
alter table my_ft_test_02 drop key idx_ft_name;
2、执行如下SQL语句,重新添加全文索引。
alter table my_ft_test_02 add fulltext key idx_ft_name (name);
InnoDB引擎表
InnoDB引擎表需要将innodb_ft_min_token_size设置为小于等于需要检索的最小分词长度,设置完毕后建议重新创建表上已有的全文索引,对于中文检索,建议将ft_min_word_len设置为1,否则可能出现查不到数据的情况,如下图所示。
重建全文索引示例
表结构如下所示。
CREATE TABLE `my_ft_test_01` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `idx_ft_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
重建全文索引步骤。
1、执行如下SQL语句,删除已有的全文索引。
alter table my_ft_test_01 drop key idx_ft_name;
2、执行如下SQL语句,重新添加全文索引。
alter table my_ft_test_01 add fulltext key idx_ft_name (name);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。