mysql使用全文索引实现大字段的模糊查询

没有了');`进行模糊查询。总结问题:从MySQL 5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并对MyISAM和InnoDB引擎有效。使用时注意版本号和配置。相关命令:使用`SHOW CREATE TABLE tbl_article_content;`查询当前表信息,使用`SHOW VARIABLES LIKE '%ngram%';`查询ngram引擎配置信息。
mysql使用全文索引实现大字段的模糊查询
场景说明:在centos7环境下,使用mysql5.7的InnoDB引擎,创建一个名为`tbl_article_content`的表。表结构中包含`id`、`content`、`article_id`、`create_by`和`modifield_by`字段,并对`content`字段建立了全文索引`content_word`。

为什么要使用索引:由于存在全局搜索需求,需要用户输入关键字来展示包含该关键字的文章(标题、简介、内容)。由于文章内容字段`content`存储的是大文本,为了提高查询效率,选择使用全文索引(fulltext)。

创建索引:使用ngram解析器对`tbl_article_content`表的`content`字段创建名为`content_word`的全文索引。

MySQL配置:MySQL默认没有开启与配置ngram,因此在建立索引后需要对MySQL进行配置。打开mysql配置文件,在[mysqld]下加入`ft_min_word_len=1`和`ngram_token_size=1`,并重启MySQL。进入MySQL后,修复之前创建的索引。

查询语句:使用`SELECT article_id FROM tbl_article_content WHERE MATCH(content) AGAINST('没有了');`进行模糊查询。

总结问题:从MySQL 5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并对MyISAM和InnoDB引擎有效。使用时注意版本号和配置。

相关命令:使用`SHOW CREATE TABLE tbl_article_content;`查询当前表信息,使用`SHOW VARIABLES LIKE '%ngram%';`查询ngram引擎配置信息。2024-11-13
mengvlog 阅读 53 次 更新于 2025-12-18 13:32:42 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部