MySQL全文索引应用简明教程

MySQL从5.7版本开始支持内置的ngram全文检索插件,专门用于处理中文语义分词。为了使用ngram插件,首先需要在MySQL配置文件中设置分词大小,例如:[mysqld]ngram_token_size=2。这一步设置分词大小,越大则索引体积越大,需根据实际情况调整。创建示例表结构时,可以使用如下SQL语句:CREATE TABLE articles ...
MySQL全文索引应用简明教程
MySQL从5.7版本开始支持内置的ngram全文检索插件,专门用于处理中文语义分词。为了使用ngram插件,首先需要在MySQL配置文件中设置分词大小,例如:[mysqld]ngram_token_size=2。这一步设置分词大小,越大则索引体积越大,需根据实际情况调整。

创建示例表结构时,可以使用如下SQL语句:

CREATE TABLE articles (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT(title, body) WITH PARSER ngram) ENGINE=InnoDB CHARACTER SET utf8mb4;

插入示例数据如下:

mysql> SELECT * FROM articles;

在ngram插件中,可以显式指定全文检索表源:

SET GLOBAL innodb_ft_aux_table="new_feature/articles";

通过系统表查看数据划分情况:

SELECT * FROM information_schema.INNODB_FT_INDEX_CACHE LIMIT 20, 10;

示例检索操作包括:

1. 自然语言模式检索:如SELECT COUNT(*) FROM articles WHERE MATCH(title, body) AGAINST('数据库' IN NATURAL LANGUAGE MODE);

2. 布尔模式检索:如SELECT * FROM articles WHERE MATCH(title, body) AGAINST('+数据库+管理' IN BOOLEAN MODE);

3. 查询扩展模式:如SELECT * FROM articles WHERE MATCH(title, body) AGAINST('数据库' WITH QUERY EXPANSION);

以上演示了ngram插件在MySQL中的应用,更多性能测试请自行进行。

N-gram作为常用的中文分词算法,已在互联网上广泛应用,这次集成到MySQL中,预计不会对性能造成太大影响。2024-11-14
mengvlog 阅读 51 次 更新于 2025-09-09 08:09:37 我来答关注问题0
  •  深空见闻 驾校系统安装教程(简明易懂的安装指南)

    一、系统安装前的准备工作 确保拥有一台性能可靠的计算机和稳定的网络连接。了解驾校系统的硬件和软件要求,确保计算机满足安装条件。二、下载驾校系统安装文件 访问驾校系统官方网站,找到“下载”或“产品”页面。下载最新版本的安装文件,并确保文件完整无损。三、解压安装文件 将下载好的安装文件解压缩到指...

  •  greystar_cn GitHub 上有哪些值得推荐的开源电子书

    第1 部分: 构建基本应用程序 第2 部分: JSF 生命周期、转换、检验和阶段监听器 用Eclipse Europa 进行 Web 开发 第1 部分: Eclipse Java EE 第2 部分: PHP 开发工具 第3 部分: Ruby Development Toolkit 和 RadRails 使用JavaServer Faces 构建 Apache Geronimo 应用程序 第1 部分: 使用 Eclipse 和 Apache M...

  •  ZYZHY678AB 学软件开发需要有什么基础?

    1、基础知识学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础。有了这个基础,学起来可以事半功倍。当然,对数学、英语的要求也没有想象中的那么高。2、基础编程语言编程语言是学软件开发的钥匙,初学者好根据自身的喜好或者职业规划选择语言。目前主流的编程语言包括Java、PHP、.n...

  • anonymous 如何系统地自学 Python

    找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。我当时看的是《简明python教程》,不过这本书不是非常适合零基础初学者。去找一个实际项目练手。我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。...

  •  牧珺Tw 如何创建数据库

    1 首先 用Access 2000(数据库 )做一个数据库 打开设计器创建表 在点菜单 另存为 名为班级名+自己名字英文简写 最后点保存啦 (每完成系统都是有提示的啦) 第一问 解决 2 打开设计器 上面做的表下面下 创建数据表 名字都是在最后完成时做的 先不用管 然后在输入sID,sName,sSex,...

檬味博客在线解答立即免费咨询

mySQL相关话题

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