mysql 中文模糊搜索_MYSQL中的中文模糊搜索除了使用全文索引外还有什么办法呢...

展开全部

全文检索在MySQL里面很早就支持了,只不过一直以来只支32313133353236313431303231363533e58685e5aeb931333433626561持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格就不合适,需要针对中文语义进行分词。这不,从MySQL5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎有效。

在使用中文检索分词插件ngram之前,先得在MySQL配置文件里面设置他的分词大小,比如,

[mysqld]

ngram_token_size=2

这里把分词大小设置为2。要记住,分词的SIZE越大,索引的体积就越大,所以要根据自身情况来设置合适的大小。

示例表结构:

CREATE TABLE articles (

id INTUNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,

titleVARCHAR(200),

body TEXT,

FULLTEXT (title,body) WITH PARSER ngram

) ENGINE=InnoDBCHARACTER SET utf8mb4;

示例数据,有6行记录。

mysql> select * from articles\G

***************************1. row ***************************

id: 1

title: 数据库管理

body: 在本教程中我将向你展示如何管理数据库

***************************2. row ***************************

id: 2

title: 数据库应用开发

body: 学习开发数据库应用程序

***************************3. row ***************************

id: 3

title: MySQL完全手册

body: 学习MySQL的一切

***************************4. row ***************************

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值