Elasticsearch IK 分词器自定义词典——扩展词、停用词、热更新、同义词
IK 分词器默认的词库是通用的但每个项目都有自己的专有名词——小红书里显眼包“多巴胺穿搭”电商里充氮气独立包装——这些词 IK 默认会把它们切成一堆碎词搜索体验很差。这篇文章覆盖 IK 分词器的四种自定义配置扩展词词典让 IK 认识你的专有名词、停用词词典过滤掉无意义的词、MySQL 热更新词典改词库不用重启 ES、同义词词典搜笔记本也召回笔记本电脑。为什么默认词库不够用默认分词多巴胺穿搭 → [多巴胺, 穿搭] ← 能分出来 显眼包 → [显, 眼, 包] ← 拆碎了搜显眼包召回不准 充氮气独立包装 → [充, 氮气, 独立, 包装] ← 充氮气应该是一个词专有名词被拆碎了之后倒排索引里没有完整的 term搜显眼包召回不到。需要让 IK 知道显眼包’是一个完整的词别拆。找到 IK 配置目录Docker 部署的 ESIK 配置路径在/usr/share/elasticsearch/plugins/ik/config/ ├── IKAnalyzer.cfg.xml ← 主配置文件所有词典入口 ├── main.dic ← IK 自带扩展词库 ├── stopword.dic ← IK 自带停用词库 └── ...拼音、繁体等可选模块建议把目录挂出来方便改dockerrun-d\--namees\-p9200:9200\-v./es-plugins/ik:/usr/share/elasticsearch/plugins/ik\elasticsearch:8.15.0改完重启容器生效。下面所有的.dic文件都放在这个config/目录下和IKAnalyzer.cfg.xml同级。完整配置一览先把IKAnalyzer.cfg.xml的最终形态放这里——四种词典的入口都在这一处。后面每个小节分别讲对应文件怎么写。?xml version1.0 encodingUTF-8?!DOCTYPEpropertiesSYSTEMhttp://java.sun.com/dtd/properties.dtdpropertiescommentIK Analyzer 扩展配置/comment!-- 扩展词词典本地文件改完重启 ES --entrykeyext_dictmy_ext.dic/entry!-- 停用词词典本地文件改完重启 ES --entrykeyext_stopwordsmy_stop.dic/entry!-- 扩展词热更新MySQL不重启 --entrykeyremote_ext_dictjdbc:mysql://host.docker.internal:3306/ik?useSSLfalseamp;serverTimezoneAsia/Shanghai/entryentrykeyremote_ext_dict_tableik_ext_dict/entryentrykeyremote_ext_dict_columnword/entry!-- 停用词热更新MySQL不重启 --entrykeyremote_ext_stopwordsjdbc:mysql://host.docker.internal:3306/ik?useSSLfalseamp;serverTimezoneAsia/Shanghai/entryentrykeyremote_ext_stopwords_tableik_stop_dict/entryentrykeyremote_ext_stopwords_columnword/entry!-- 统一刷新间隔秒 --entrykeyremote_ext_dict_interval60/entry/propertiesentry干什么更新方式ext_dict扩展词专有名词改.dic文件 → 重启 ESext_stopwords停用词无意义词改.dic文件 → 重启 ESremote_ext_dict扩展词热更新改 MySQL → 等 60s 自动生效remote_ext_stopwords停用词热更新改 MySQL → 等 60s 自动生效remote_ext_dict_interval刷新间隔默认 60 秒1 扩展词词典——让 IK 认识你的专有名词在config/下新建my_ext.dic一行一个词# my_ext.dic 显眼包 多巴胺穿搭 充氮气 程一口 独立包装重启 ES 后验证curl-XPOSThttp://localhost:9200/_analyze\-HContent-Type: application/json\-d{ analyzer: ik_max_word, text: 充氮气独立包装 }# 返回[充氮气, 独立, 包装]# 充氮气 被保留成完整词了 ✅2 停用词词典——过滤掉无意义的词在config/下新建my_stop.dic# my_stop.dic 的 了 是 在 和 也 就 都 吗 呢 吧重启 ES 后验证curl-XPOSThttp://localhost:9200/_analyze\-HContent-Type: application/json\-d{ analyzer: ik_max_word, text: 今天天气太热了 }# 了 被过滤掉了 ✅3 MySQL 热更新——改词库不用重启 ES重启一次几分钟词库经常变的话吃不消。IK 1.10.0 支持 MySQL 热更新启动时加载之后每隔 60 秒去查一次有新词自动加载到内存。建表CREATEDATABASEik;USEik;-- 扩展词表CREATETABLEik_ext_dict(idBIGINTAUTO_INCREMENTPRIMARYKEY,wordVARCHAR(255)NOTNULLCOMMENT扩展词,create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP);INSERTINTOik_ext_dict(word)VALUES(显眼包),(多巴胺穿搭),(程一口);-- 停用词表CREATETABLEik_stop_dict(idBIGINTAUTO_INCREMENTPRIMARYKEY,wordVARCHAR(255)NOTNULLCOMMENT停用词,create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP);INSERTINTOik_stop_dict(word)VALUES(的),(了),(呢),(吧);放 MySQL 驱动# 下载 mysql-connector-j放到 plugins/ik/ 目录下和 IK 的 jar 同级cpmysql-connector-j-9.2.0.jar ./es-plugins/ik/配置项说明配置含义remote_ext_dictJDBC 连接串用户名密码用userrootpasswordxxx拼在 URL 里remote_ext_dict_table扩展词表名remote_ext_dict_column扩展词所在的列名remote_ext_stopwords停用词 JDBC 连接串remote_ext_stopwords_table停用词表名remote_ext_stopwords_column停用词所在的列名remote_ext_dict_interval刷新间隔秒用户名密码写 JDBC URL 里jdbc:mysql://host:3306/ik?userrootpassword123456useSSLfalse重启 ES 后往 MySQL INSERT 一条新词等 60 秒验证INSERT INTO ik_ext_dict(word)VALUES(新测试词);# 等 60 秒后curl-XPOSThttp://localhost:9200/_analyze\-HContent-Type: application/json\-d{ analyzer: ik_max_word, text: 新测试词在这里 }# 新测试词 被完整保留 → 热更新生效 ✅4 同义词词典——搜笔记本也召回笔记本电脑同义词不归 IK 管属于 ES 的synonymtoken filter。新建同义词文件synonyms.txt放在 ES 的config/目录下/usr/share/elasticsearch/config/不是 IK 的 config一行一组笔记本, 笔记本电脑, laptop 显眼包, 显眼, 显眼精 充氮气, 氮气填充创建 Index 时配上同义词 filterPUT/articles{settings:{analysis:{filter:{my_synonym_filter:{type:synonym,synonyms_path:analysis/synonyms.txt}},analyzer:{ik_synonym_smart:{tokenizer:ik_smart,filter:[my_synonym_filter]},ik_synonym_max_word:{type:custom,tokenizer:ik_max_word,filter:[my_synonym_filter]}}}},mappings:{properties:{content:{type:text,analyzer:ik_synonym}}}}搜笔记本时ES 自动把笔记本电脑也加入查询多种说法都能召回。同义词文件更新后新写入的数据立即生效已有数据需要 reindex 重建索引。

相关新闻

卡美德生物科普 RHD(Rh血型D抗原):分子结构、表达特征与生物学功能探究

卡美德生物科普 RHD(Rh血型D抗原):分子结构、表达特征与生物学功能探究

RHD基因编码的RhD抗原,是人类血型系统中极具代表性的膜蛋白分子,也是输血医学、细胞生物学及遗传学研究中的经典核心靶点。该靶点依托独特的跨膜结构,稳定表达于特定血细胞表面,不仅是血型分型的核心标志物,还参与机体…

2026/7/20 21:48:20 阅读更多 →
卡美德生物科普 RGMA( repulsive guidance molecule A):分子特征、表达特性与生物学功能研究

卡美德生物科普 RGMA( repulsive guidance molecule A):分子特征、表达特性与生物学功能研究

RGMA,全称排斥性导向分子A,是排斥性导向分子家族的关键分泌型糖蛋白。该靶点在生物体内的信号调控、细胞生长、组织形态构建等过程中扮演着重要角色,是发育生物学、细胞生物学领域重点研究的经典分子靶点。RGMA凭借独特的分子互作机制&#x…

2026/7/20 21:48:20 阅读更多 →
Express框架入门:从基础搭建到路由系统详解

Express框架入门:从基础搭建到路由系统详解

1. Express基础环境搭建与服务器创建作为Node.js最流行的Web框架之一,Express让服务器开发变得异常简单。我们先从最基础的服务器搭建开始:1.1 项目初始化与Express安装首先创建一个空目录作为项目根目录,执行npm初始化命令:mkdir…

2026/7/20 21:47:20 阅读更多 →

最新新闻

Java Diff Utils:5分钟掌握文本差异比较的终极解决方案

Java Diff Utils:5分钟掌握文本差异比较的终极解决方案

Java Diff Utils:5分钟掌握文本差异比较的终极解决方案 【免费下载链接】java-diff-utils Diff Utils library is an OpenSource library for performing the comparison / diff operations between texts or some kind of data: computing diffs, applying patches…

2026/7/21 11:15:43 阅读更多 →
QMCDecode完整教程:三步轻松解锁QQ音乐加密文件

QMCDecode完整教程:三步轻松解锁QQ音乐加密文件

QMCDecode完整教程:三步轻松解锁QQ音乐加密文件 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结果…

2026/7/21 11:15:43 阅读更多 →
天龙八部GM工具终极指南:5分钟从零到精通的管理秘籍

天龙八部GM工具终极指南:5分钟从零到精通的管理秘籍

天龙八部GM工具终极指南:5分钟从零到精通的管理秘籍 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 你是否曾经在管理天龙八部单机版时感到束手无策?面对复杂的数据库操作、角…

2026/7/21 11:15:43 阅读更多 →
抖音下载器终极指南:5分钟掌握批量下载与无水印视频提取技术

抖音下载器终极指南:5分钟掌握批量下载与无水印视频提取技术

抖音下载器终极指南:5分钟掌握批量下载与无水印视频提取技术 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback…

2026/7/21 11:15:43 阅读更多 →
【AI事实核查黄金法则】:20年专家亲授5步验证法,避开99%的幻觉陷阱

【AI事实核查黄金法则】:20年专家亲授5步验证法,避开99%的幻觉陷阱

更多请点击: https://codechina.net 第一章:AI事实核查黄金法则的底层逻辑 AI事实核查并非简单比对真假,而是构建可验证、可追溯、可解释的认知闭环。其底层逻辑根植于三个不可分割的支柱:语义一致性验证、证据链可溯性建模&…

2026/7/21 11:15:43 阅读更多 →
如何高效解决Buzz语音模型下载缓慢的3种实用策略

如何高效解决Buzz语音模型下载缓慢的3种实用策略

如何高效解决Buzz语音模型下载缓慢的3种实用策略 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 作为基于OpenAI Whisper的离…

2026/7/21 11:14:42 阅读更多 →

日新闻

Octane Render与C4D汉化版安装与优化指南

Octane Render与C4D汉化版安装与优化指南

1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能&#xff…

2026/7/21 0:00:19 阅读更多 →
GPMC接口设计:异步/同步模式与多路复用配置实战

GPMC接口设计:异步/同步模式与多路复用配置实战

1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…

2026/7/21 0:00:19 阅读更多 →
UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

1. 项目概述:UE5 GAS RPG被动技能的核心价值在UE5里用GAS(Gameplay Ability System)做RPG游戏,主动技能像是你手里的武器,按一下打一下,逻辑直接,反馈也快。但被动技能,它更像是你身…

2026/7/21 0:00:19 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻