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

已解决

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

展开
收起
云上猫猫 2022-01-14 11:51:02 919 分享 版权
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版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

收录在圈子:
还有其他疑问?
咨询AI助理