mysql 全文索引中的Stopwords

Full-Text Stopwords 是指在全文搜索时被索引系统默认忽略的一组单词。这些通常是最常见的单词,比如 "the"、"is"、"at" 等英语中的助词、介词、连接词等。它们通常不含有具体的搜索意义,因此在创建全文索引的时候会被排除在外,以便减少索引大小并提高搜索效率。

在 MySQL 中使用全文索引和搜索时,Stopwords 的作用如下:

  1. 索引构建 - 当创建全文索引时,Stopwords 不会被包括在内。这意味着,如果你的搜索关键字包含了这些词,它们不会出现在索引结果中。

  2. 搜索查询 - 当执行全文搜索时,如果搜索字符串包含 Stopwords,那么这些词将不会被用于匹配。

你可以通过查看 MySQL 的官方文档来获取默认的 Stopword 列表,并根据需要修改它。例如,在 MyISAM 引擎中,停用词列表存储在 storage/myisam/ft_static.c 文件中,而 InnoDB 引擎的停用词列表是由服务器变量 innodb_ft_default_stopword 指定的表。

若要改变默认的停用词集合,你可以进行以下操作:

  1. 自定义停用词表 - 通过设置系统变量(例如 ft_stopword_file)来指定自己的停用词文件路径,或者对于 InnoDB 表,通过给 innodb_ft_server_stopword_table 设置一个指向你自己停用词表的值。

  2. 重新生成索引 - 更改停用词表后,相关的全文索引需要重建,以确保新的停用词列表生效。

  3. 使用IN BOOLEAN MODE搜索 - 如果你想在搜索时忽略停用词列表,可以在全文搜索中使用 IN BOOLEAN MODE 选项,这样即使是停用词也会被用于搜索匹配。

举例来说,如果你对一个包含文章文本的列使用全文索引搜索,但希望 "the" 和 "is" 这样的常见单词能够在搜索中匹配,你可能需要自定义停用词表或使用 IN BOOLEAN MODE 进行搜索。

请注意,调整停用词列表可能影响搜索结果的相关性和性能,因此应谨慎进行。

相关推荐
白帽小丑8 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Dxy12393102169 小时前
MySQL索引完整教程:创建、查看、修改、删除与日常管理
前端·javascript·mysql
Quincy_Freak10 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
至乐活着11 小时前
MySQL索引底层原理与查询优化实战:从B+树到执行计划
mysql·b+树·查询优化·sql性能·索引原理
2601_9626838912 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程13 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_14 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫15 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL15 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R16 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库