mysql全文索引配置_MySQL配置全文索引

最近在业务中遇到了需要使用一个中文字段多次 like "%str[]%" ,其中str[]表示一个字符串数组,并且之间的关系是or;

然后自己再加入一个分词,这个查询条件少说也有快十来个like 吧,觉得这样的查询太难看了。

于是我找到一个叫做全文索引的东西;

至于全文索引是什么东西,不是这篇文章的重点,我会列出我所参考的几个网站:

这里介绍步骤:

1、读懂MATCH() AGAINST()语法

2、对于一个尚未创建索引的字段,它会提示:

[Err] 1191 - Can't find FULLTEXT index matching the column list

也就是没有创建索引,于是需要添加索引

3、再者发现不能搜索单字,什么意思呢

SELECT * from make where MATCH(search_key) AGAINST('刀' in boolean mode);

这样虽然我的字段里有“刀”,并且“刀”前后是有空格的,都搜不到;

这是因为需要改mysql的配置文件my.ini(linux下是my.cnf)

[mysqld]

port= 3306innodb_ft_min_token_size=1ft_min_word_len=1

这个size表示索引词的最小大小,也有说这个中文应该设置为2的,这里mark一下以后去查查

4、重启mysql,发现还是不行

是因为需要刷新已有的缓存;

ALTER TABLE table_name ENGINE='innodb';

OK,这样一来就可以了

5、发现mysql5.7新增了n-gram分词功能

这个日后研究。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值