当前位置: 首页 > news >正文

Elasticsearch 核心:分词功能实现原理全解析

Elasticsearch 核心:分词功能实现原理全解析

    • 一、前言
    • 二、基础概念:什么是分词?
      • 2.1 分词定义
      • 2.2 分词的作用
    • 三、分词功能的核心载体:Analyzer(分析器)
    • 四、Elasticsearch 分词实现原理(完整流程图)
    • 五、分词功能实现原理(分步详细讲解)
      • 5.1 第一步:Character Filter 字符预处理(文本清洗)
      • 5.2 第二步:Tokenizer 核心分词(最关键)
      • 5.3 第三步:Token Filter 词条标准化加工
    • 六、分词完整执行过程(真实案例)
      • 分词步骤:
    • 七、分词在 Elasticsearch 中的两大触发时机
      • 7.1 写入时分词(Index Analyzer)
      • 7.2 查询时分词(Search Analyzer)
      • 重点原则(90% 新手踩坑)
    • 八、中文分词实现原理(IK 分词核心)
      • IK 分词原理:
    • 九、分词底层原理总结(极简版)
    • 十、为什么分词原理如此重要?
    • 十一、总结(3 句核心口诀)

🌺The Begin🌺点点关注,收藏不迷路🌺

一、前言

分词是 Elasticsearch 全文检索的灵魂
为什么输入“苹果手机”能搜到包含“苹果”或“手机”的商品?
为什么中文能按词语拆分,而英文能按单词拆分?
这一切都依赖ES 的分词机制

很多新手只知道用分词器,但不懂原理,导致搜索不准、性能低下、数据查不出来。

本文带你彻底搞懂:Elasticsearch 分词功能的完整实现原理、执行流程、底层结构、作用机制,包含流程图、结构化步骤、标准 CSDN 博客格式,可直接发布。


二、基础概念:什么是分词?

2.1 分词定义

分词(Analysis)= 将一段原始文本按照一定规则,切分成一个个**词语/词条(Term)**的过程。

例如:

我喜欢Elasticsearch → 分词后 → [我, 喜欢, elasticsearch]

2.2 分词的作用

  1. 写入时:拆分文本 → 构建倒排索引
  2. 查询时:拆分关键词 → 匹配倒排索引
  3. 决定搜索精准度、召回率、性能

三、分词功能的核心载体:Analyzer(分析器)

ES 分词不是一个单独功能,而是由Analyzer(分析器)完整实现。

一个分析器 = 3 个固定组件(顺序不可变):

  1. Character Filter(字符过滤器)
  2. Tokenizer(分词器)
  3. Token Filter(词条过滤器)

四、Elasticsearch 分词实现原理(完整流程图)

下面是ES 分词最核心、最标准的执行流程图,必须掌握:

原始文本

Character Filter
1. 去除HTML
2. 替换特殊符号
3. 清洗字符串

Tokenizer
【核心】
按照规则切分词语

Token Filter
1. 转小写
2. 去停用词
3. 同义词
4. 去重

最终词条集合
用于倒排索引/搜索匹配

执行顺序:固定从上到下执行!


五、分词功能实现原理(分步详细讲解)

5.1 第一步:Character Filter 字符预处理(文本清洗)

作用:在分词之前清洗原始文本
处理对象:完整字符串
可做什么

  • 去除 HTML 标签
  • 替换特殊符号(& → and)
  • 过滤表情、空格、标点
    数量:0~多个

示例:

<h1>我爱ES</h1>→ 清洗后 → 我爱ES

5.2 第二步:Tokenizer 核心分词(最关键)

作用:按照规则切分词语
这是分词的核心!
数量必须有且仅有1个

常见分词规则:

  • standard:按单词、标点分割
  • ik_max_word:中文最细粒度拆分
  • ik_smart:中文粗粒度拆分
  • whitespace:按空格切分
  • keyword:不切分

示例(IK 分词):

我爱深度学习 → [我, 爱, 深度, 学习, 深度学习]

5.3 第三步:Token Filter 词条标准化加工

作用:对切分后的词语列表进行二次处理
处理对象:词语流(Token Stream)
可做什么

  • 转小写
  • 去掉停用词(的、了、is、the)
  • 增加同义词
  • 拼音转换
  • 去重
    数量:0~多个

示例:

[I, LOVE, THE, ES] → 小写 + 去停用词 → [love, es]

六、分词完整执行过程(真实案例)

原始文本:

<h1>我爱Elasticsearch</h1>

分词步骤:

  1. Character Filter
    去除 HTML →我爱Elasticsearch

  2. Tokenizer(IK)
    切分 →[我, 爱, Elasticsearch]

  3. Token Filter

    • 小写转换 →elasticsearch
    • 去停用词 → 移除
    • 最终词条 →[爱, elasticsearch]

七、分词在 Elasticsearch 中的两大触发时机

7.1 写入时分词(Index Analyzer)

文档写入 → 分词 → 生成词条 → 构建倒排索引

7.2 查询时分词(Search Analyzer)

用户输入关键词 → 分词 → 匹配倒排索引 → 返回结果

重点原则(90% 新手踩坑)

写入和查询必须使用相同的分词规则,否则搜不到数据!


八、中文分词实现原理(IK 分词核心)

中文没有空格,必须使用IK 分词插件

IK 分词原理:

  1. 加载中文词典
  2. 使用正向最大匹配算法 / 逆向匹配算法
  3. 结合词典进行词语切分
  4. 支持自定义词典、扩展词、停用词

两种模式:

  • ik_max_word:最细粒度拆分(搜索用)
  • ik_smart:快速粗粒度拆分(写入用)

示例:

中华人民共和国 ik_max_word → [中华人民共和国, 中华人民, 中华, 华人, 人民共和国, 人民, 共和国]

九、分词底层原理总结(极简版)

  1. 先清洗文本
  2. 再切分词语
  3. 最后标准化处理
  4. 输出词条列表
  5. 用于构建倒排索引

一句话总结:
分词 = 文本清洗 + 词语切分 + 标准化处理 + 生成词条


十、为什么分词原理如此重要?

  1. 决定搜索是否准确
  2. 决定召回率是否足够
  3. 决定性能是否高效
  4. 决定是否能搜到数据
  5. 倒排索引的基础

十一、总结(3 句核心口诀)

  1. ES 分词 = Analyzer 分析器完成
  2. 分析器由 3 组件组成:字符过滤 → 分词 → 词条加工
  3. 写入和查询必须使用相同分词规则

理解分词原理,你就真正掌握了 Elasticsearch全文检索的底层核心


🌺The End🌺点点关注,收藏不迷路🌺
http://www.jsqmd.com/news/681375/

相关文章:

  • 如何选择速冻青豆生产厂家,全国范围内靠谱的盘点 - 工业设备
  • 百度网盘直连解析工具:三步实现文件高速下载突破
  • Linux RS485串口驱动移植实战--以Rockchip与Amlogic平台为例
  • 3步完成图像矢量化:用vectorizer将PNG/JPG转换为高质量SVG的完整指南
  • EasyExcel读取性能优化实战:除了空行过滤,你的批处理监听器还能这样玩
  • 网盘直链获取工具:跨平台文件下载效率提升方案
  • 如何快速部署英雄联盟云顶之弈自动化工具:面向初学者的完整实战指南
  • 2026年OPC办公空间家具源头厂家价格比较,北京地区哪家实惠 - myqiye
  • GLPI安装总报错?这份CentOS 7下的“保姆级”排错指南请收好(附PHP模块、文件权限详解)
  • Vectorizer实战指南:如何用JavaScript将PNG/JPG智能转换为可编辑SVG矢量图
  • 我的MobileViT训练翻车实录:从数据集坑到学习率调参,这些PyTorch细节新手一定要注意
  • 别再只画散点图了!用Python的sklearn和matplotlib,5分钟搞定PCA双标图(含置信椭圆绘制)
  • TTS-Backup终极指南:一键保护你的Tabletop Simulator游戏数据
  • Windows任务栏美化终极指南:用TranslucentTB实现透明、模糊与亚克力效果
  • Elasticsearch 查询性能优化终极指南:从原理到实战,彻底降低查询延迟
  • 告别云端:5步在本地用Orthanc搭建轻量级DICOM影像服务器,管理你的CT/MRI数据集
  • 终极网盘下载加速指南:八大平台直链解析工具完全教程
  • 共话电镀电源生产厂哪家售后好,跃阳电源服务周到获认可 - mypinpai
  • Windows热键侦探:终极快捷键冲突检测与解决指南
  • UPF3.0实战:用VCS NLP跑通你的第一个低功耗仿真(附完整脚本)
  • 别再只会yum install了!手把手教你源码编译安装OpenSSL,打造专属加密环境
  • 深入U-Boot链接脚本:手把手解析RISC-V平台的u-boot.lds如何决定程序布局
  • SuperMap GIS处理BIM数据避坑指南:从模型检查到缓存生成的12个常见误区
  • Oracle连接报ORA12514别慌!手把手教你排查监听器配置(附listener.ora文件详解)
  • 避坑指南:4G/5G模块在Linux上的那些‘坑’——驱动、接口与拨号方式详解
  • 手把手教你设计自己的FMC子卡:从原理图到PCB布局的实战避坑记录(附Altium库)
  • 2026年济南婚礼母亲装定制有哪些性价比高的 - 工业品网
  • KeymouseGo 完整指南:免费开源鼠标键盘自动化终极方案
  • 如何快速上手SketchUp STL插件:3D打印模型转换的终极指南
  • 2026年降AI与查AI率工具怎么选?实测10款后,我推荐这1个! - 降AI实验室