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/10/15 16:46:25 阅读更多 →
卡美德生物科普 RGMA( repulsive guidance molecule A):分子特征、表达特性与生物学功能研究

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

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

2026/10/15 16:46:46 阅读更多 →
Express框架入门:从基础搭建到路由系统详解

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

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

2026/10/15 16:46:47 阅读更多 →

最新新闻

如何把来路可疑的 iOS 安装包变成一份可审计清单

如何把来路可疑的 iOS 安装包变成一份可审计清单

如何把来路可疑的 iOS 安装包变成一份可审计清单 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea 做 iOS 应用逆向不一定从反汇编开始。REA&#xf…

2026/10/16 2:52:57 阅读更多 →
Apple Watch录音+AI总结:BYOK模式打造随身语音笔记工作流

Apple Watch录音+AI总结:BYOK模式打造随身语音笔记工作流

最近我刷到 Nomily 这个开源项目时,第一反应是“这不就是我一直想要的东西吗”。它把 Apple Watch 的录音能力和 AI 总结捏在了一条链路上,而且用了 BYOK(Bring Your Own Key)模式:你带上自己的大模型 API Key&#xf…

2026/10/16 2:52:57 阅读更多 →
MooTool Compose 版 F03 格式化工具文件 Tab 接线与 Vault MCP 双库分页解读(DIFF-572 切片)

MooTool Compose 版 F03 格式化工具文件 Tab 接线与 Vault MCP 双库分页解读(DIFF-572 切片)

桌面应用开发工具 【免费下载链接】MooTool Handy tool set for developers 项目地址: https://gitcode.com/gh_mirrors/mo/MooTool 点击查看 免费下载 DIFF-572 是 MooTool next-compose 版本在 Electron 功能对等(parity)推进过程中的一个…

2026/10/16 2:52:57 阅读更多 →
Lunar 5.9.2a3 深度解析:登录启动 API 迁移与 DCP 服务 nil EDID UUID 修复

Lunar 5.9.2a3 深度解析:登录启动 API 迁移与 DCP 服务 nil EDID UUID 修复

桌面应用 【免费下载链接】Lunar Intelligent adaptive brightness for your external monitors 项目地址: https://gitcode.com/gh_mirrors/lu/Lunar 点击查看 免费下载 导读 Lunar 是一款面向外接显示器的智能自适应亮度调节工具,通过 DDC/CI、gamma…

2026/10/16 2:52:57 阅读更多 →
BLE低功耗设计-第10章第3题-任务调度如何影响蓝牙低功耗状态

BLE低功耗设计-第10章第3题-任务调度如何影响蓝牙低功耗状态

蓝牙面试题解析:任务调度如何影响蓝牙低功耗状态? 难度:⭐⭐⭐⭐ 较难 | 场景:社招二面、任务调度 | 高频:🔥🔥🔥 标准答案 任务调度直接影响 BLE 设备能睡多久、醒几次:频繁唤醒的任务缩短连续休眠时间,使平均功耗上升。优化靠批处理任务合并唤醒、延迟非紧急任…

2026/10/16 2:52:57 阅读更多 →
晶圆FT测试良率漂移:区分芯片本体缺陷与测试机台引入误差

晶圆FT测试良率漂移:区分芯片本体缺陷与测试机台引入误差

FT(Final Test,最终测试)是晶圆离开Fab前最后一次电学性能检验。FT良率出现下滑的时候,工程师面临的第一道关卡往往不是"怎么解决问题",而是"问题到底出在哪里"——是芯片本身工艺有问题&#xff…

2026/10/16 2:51:57 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →