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 阅读 68 次 更新于 2025-10-31 12:53:58 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

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