ID:800123  

MySQL全文检索中文最小分词长度设置不生效的问题

[全文检索] [中文检索]

2023年01月16日   202


MySQL 5.5版本仅MyISAM引擎表支持全文索引,从MySQL 5.6版本开始MyISAM和InnoDB引擎都支持全文索引。因此在对全文检索的时候对于最小分词长度关键词不一样

设置方法

对于服务器是windows则修改mysql配置文件my.ini,对于linux则修改mysql配置文件my.cnf。打开my.ini或者my.cnf,在[mysqld]后面加入一行“ft_min_word_len=1(MyISAM引擎) ”或者innodb_ft_min_token_size=1(InnoDB引擎),然后重启Mysql,再重建全文索引,否则将无法使用全站搜索功能。

MyISAM引擎

  1. ft_min_word_len :MyISAM引擎表全文索引包含的最小词长度,默认值为4。
  2. ft_query_expansion_limit :MyISAM引擎表使用with query expansion进行全文搜索的最大匹配数。,默认值为20。

InnoDB引擎

  1. innodb_ft_min_token_size:InnoDB引擎表全文索引包含的最小词长度,默认值为3。
  2. innodb_ft_max_token_size:InnoDB引擎表全文索引包含的最大词长度,默认值为84。

重建全文索引

最小词长度设置后不能立即生效,要重新启动MYSLQ,另外还要对全文索引进行重建索引,否则可能出现查不到数据的情况。重建索引的方法就是对已经全文索引的字段进行删除全文索引操作,然后重新建立全文索引

[博客文章] [杂谈]