mysql用中文加N,MySQL使用中文全文检索设置单个字查询方法

从MySQL 5.7.6开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。 本文使用的MySQL 版本是 5.7.19,InnoDB数据库引擎并配合宝塔linux使用,全文检索适用于小型网站来代替elasticsearch和shirongram全文解析器

ngram就是一段文字里面连续的n个字的序列。

ngram全文解析器能够对文本进行分词,每个单词是连续的n个字的序列。

例如,用ngram全文解析器对“小猪”进行分词:n=1: '小', '猪'

n=2: '小猪'

MySQL 中使用全局变量 ngram_token_size 来配置 ngram 中 n 的大小,它的取值范围是1到10,默认值是 2。通常ngram_token_size设置为要查询的单词的最小字数。如果需要搜索单字,就要把ngram_token_size设置为1。在默认值是2的情况下,搜索单字是得不到任何结果的。因为中文单词最少是两个汉字,推荐使用默认值2。创建全文索引

1、建表 doutu_gif

2、创建全文索引

创建字段 gif_name 和 gif_tag 的联合全文索引,语句如下:ALTER TABLE doutu_gif ADD FULLTEXT INDEX ft_index (gif_name,gif_tag) WITH PARSER ngram;

重连数据库,刷新查看索引的创建情况:

50d8d7f8f3de322c5ab1ee09db0646c1.png

修改MYSQL配置

直接在宝塔linux里更改

新增这两行

ft_min_word_len = 1

ngram_token_size = 1

最后重启数据库即可

a107ae4b37fc31da233c2e57512759ab.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值