ID:800123
MySQL全文检索中文最小分词长度设置不生效的问题
2023年01月16日 209
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引擎
- ft_min_word_len :MyISAM引擎表全文索引包含的最小词长度,默认值为4。
- ft_query_expansion_limit :MyISAM引擎表使用with query expansion进行全文搜索的最大匹配数。,默认值为20。
InnoDB引擎
- innodb_ft_min_token_size:InnoDB引擎表全文索引包含的最小词长度,默认值为3。
- innodb_ft_max_token_size:InnoDB引擎表全文索引包含的最大词长度,默认值为84。
重建全文索引
最小词长度设置后不能立即生效,要重新启动MYSLQ,另外还要对全文索引进行重建索引,否则可能出现查不到数据的情况。重建索引的方法就是对已经全文索引的字段进行删除全文索引操作,然后重新建立全文索引