0.场景说明

centos7 mysql5.7 InnoDB引擎

0.1创建表

DROP TABLE IF EXISTS tbl_article_content;

CREATE TABLE tbl_article_content (

id bigint(40) NOT NULL AUTO_INCREMENT,

content text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

article_id bigint(40) NOT NULL COMMENT '对应文章ID',

create_by datetime(0) NOT NULL COMMENT '创建时间',

modifield_by datetime(0) NOT NULL COMMENT '更新时间',

PRIMARY KEY (id) USING BTREE,

INDEX artid(article_id) USING BTREE,

FULLTEXT INDEX content_word(content) WITH PARSER ngram

) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

0.2为什么要使用索引

因为有一个全局搜索的的需求,用户输入关键字对博客系统内所有含有该字段的文章(标题&简介&内容)进行展示,(上表只是文章内容表),由于要对文章内容进行搜素,而文章内容content在数据库中是以text存储的,所以为了查询效率,这里就需要使用索引,由于是查大文本,这里选择使用全文索引(fulltext).

1.创建索引(使用ngram解析器)

create fulltext index content_word on tbl_article_content(content) WITH PARSER ngram;

ngram是一个支持中文索引的分词引擎,

在这里我们对tbl_article_content表的content字段建一个叫content_word的全文索引.

2.mysql配置(my.cnf)

mysql默认是没有开启与配置ngram的,所以在建立索引后对mysql进行配置

打开mysql配置文件 vim /etc/my.cnf

在[mysqld]下加入

ft_min_word_len=1 //全文索引的最小搜索长度。默认是4

ngram_token_size=1 //分词的大小设置,这里设置越小,索引越大

重启mysql

systemctl restart mysqld

进入mysql,修复一下之前创的索引

repair table tbl_article_content

3.查询语句

select article_id FROM tbl_article_content WHERE MATCH(content) AGAINST('没有了');

4.总结问题

从MySQL 5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎有效,使用的时候注意自己版本号和配置

5.相关命令

show create table tbl_article_content; //查询当前表信息

SHOW VARIABLES LIKE '%ngram%'; //查询ngram引擎配置信息

6.欢迎follow

github: https://github.com/DianeDii

wx: dianedii

知乎: 爱睡觉的狄大人 (带你睡大觉)

mysql全文搜索实现模糊查询_mysql使用全文索引实现大字段的模糊查询相关推荐

  1. MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持

    背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...

  2. MySQL 全文搜索支持

    MySQL 全文搜索支持 从MySQL 4.0以上 myisam引擎就支持了full text search 全文搜索,在一般的小网站或者blog上可以使用这个特性支持搜索. 那么怎么使用了,简单看看 ...

  3. mysql against 中文_「against的用法」Mysql全文搜索之MATCH...AGAINST的用法介绍 - seo实验室...

    against的用法 前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar ...

  4. mysql全文搜索数字against_Mysql全文搜索match…against的用法

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  5. Mysql全文搜索之MATCH...AGAINST的用法介绍

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  6. 【转】 Mysql全文搜索match...against的用法

    原文链接 http://blog.csdn.net/manbujingxin/article/details/6656992 前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索. 假定 ...

  7. mysql scws_php利用scws实现mysql全文搜索功能的方法,_PHP教程

    php利用scws实现mysql全文搜索功能的方法, 本文实例讲述了php利用scws实现mysql全文搜索功能的方法.分享给大家供大家参考.具体方法如下: scws这样的中文分词插件比较不错,简单的 ...

  8. mysql scws_php利用scws实现mysql全文搜索功能的方法

    本文实例讲述了php利用scws实现mysql全文搜索功能的方法.分享给大家供大家参考.具体方法如下: scws这样的中文分词插件比较不错,简单的学习了一下,它包涵一些专有名称.人名.地名.数字年代等 ...

  9. mysql 懒加载数据_jpa如何懒加载大字段,懒加载之后又如何获取懒加载字段

    前言:对于大字段,我们在查询列表的时候不需要查询,但是修改的时候有需要展示大字段内容,怎么办 问1.jpa如何懒加载大字段?即查询列表的时候不查询出来 问2.懒加载之后又如何获取懒加载字段.比如,在后 ...

最新文章

  1. Web开发的标准目录结构
  2. 我的AngularJS学习轨迹
  3. Oracle 执行计划
  4. Hyper-V的实验安装----1
  5. Java实现插值查找算法 Insert search
  6. oralce用存储过程实现分页 以及 用java调用这个存储过程的代码
  7. 51nod1347(简单逻辑)
  8. voxelnet_ue4商城资源Voxel Sandbox Toolkit体素沙盒工具箱
  9. java的或等于_Java中的“小于或等于”比较运算符是__________: !=|||=|=
  10. 前端学习(1309):创建网站服务器
  11. Java IO学习--(五)字节和字符数组
  12. 双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!
  13. struts_login实例
  14. 卷积神经网络处理猫和狗图片(改进网络)
  15. vue实现带图片的标题栏
  16. excel实用快捷键图表_使用快捷键创建Excel图表
  17. (附源码)小程序校园拼车微信小程序 毕业设计 091617
  18. 【R语言】ggplot2:初次见面,请多多关照!
  19. 惠普光影精灵拆机换屏幕_惠普光影精灵3换电池小记
  20. umi 如何配置webpack_umi+dva开发环境+经常使用配置和webpack配置

热门文章

  1. C语言 *** stack smashing detected *** 问题的解决
  2. Linux C语言在用户态实现一个低时延通知(eventfd)+轮询(无锁队列ring)机制的消息队列
  3. TCP状态转移:有限状态机
  4. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解
  5. 后端怎么接收map_史上最全,C++后端开发面试题与知识点汇总
  6. netty的channel介绍
  7. oracle如何储存超长汉子_热水器该如何选择?!
  8. python二次开发odoo_odoo二次开发 - 战鹏的Blog - OSCHINA - 中文开源技术交流社区
  9. pve虚拟机导入gho_迁移WIN10和VMW虚拟机到ProXmoX VE(二):PVE设置和迁移windows
  10. php 嵌入手机百度地图,C# 程序中嵌入百度地图