开发者社区 > 数据库 > 关系型数据库 > 正文

【RDS】RDS MySQL对中文全文检索支持吗?

已解决

RDS MySQL对中文全文检索支持吗?

展开
收起
云上猫猫 2022-01-14 11:51:02 868 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    MyISAM引擎表和InnoDB引擎表(RDS MySQL 5.6版本)都支持中文全文检索。

    MyISAM引擎表

    MyISAM引擎表需要将ft_min_word_len设置为小于等于需要检索的最小分词长度,设置完毕后建议重新创建表上已有的全文索引。对于中文检索,建议将ft_min_word_len设置为1,否则可能出现查不到数据的情况,如下图所示。

    6.png

    重建全文索引示例

    表结构如下所示。

    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,否则可能出现查不到数据的情况,如下图所示。

    image (3).png

    重建全文索引示例

    表结构如下所示。

    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);

    2022-01-14 11:51:17
    赞同 展开评论 打赏

相关产品

  • 云数据库 RDS MySQL 版
  • 相关电子书

    更多
    搭建电商项目架构连接MySQL 立即下载
    搭建4层电商项目架构,实战连接MySQL 立即下载
    PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

    相关镜像