Elasticsearch 核心:分析器(Analyzer)组成部分及作用全解析
Elasticsearch 核心分析器Analyzer组成部分及作用全解析一、前言二、基础概念什么是 Elasticsearch 分析器2.1 核心定义2.2 分析器核心价值三、分析器的三大组成部分必考核心3.1 分析器组成结构流程图四、三大组成部分详细讲解作用原理示例4.1 第一部分Character Filter字符过滤器4.1.1 作用文本预处理4.1.2 特点4.1.3 常见类型4.1.4 示例4.2 第二部分Tokenizer分词器【核心】4.2.1 作用切分词语4.2.2 特点4.2.3 常见类型4.2.4 示例4.3 第三部分Token Filter词条过滤器4.3.1 作用词条精加工4.3.2 特点4.3.3 常见类型4.3.4 示例五、分析器完整执行流程一步一步看懂原始文本执行步骤六、三大组件对比总结表七、分析器在 ES 中的两个使用时机7.1 写入时索引分析器7.2 查询时搜索分析器八、自定义分析器示例可直接使用九、总结最重要的3句话The Begin点点关注收藏不迷路一、前言在 Elasticsearch 中分析器Analyzer是全文检索能够实现“分词、匹配、搜索”的绝对核心。无论是写入数据构建倒排索引还是查询时解析关键词都离不开分析器。很多新手搞不懂为什么数据存进去搜不到为什么分词不符合预期本质都是不了解分析器的组成和作用。本文将用最通俗的语言 流程图 结构化讲解带你彻底掌握 Elasticsearch 分析器的三大组成部分、各自作用、执行流程、工作原理。全文严格遵循 CSDN 博客格式带序号、标准标题、流程图、可直接发布。二、基础概念什么是 Elasticsearch 分析器2.1 核心定义分析器Analyzer是一个文本处理工具本质是一段处理流程。作用把一段文本 → 拆分成一个个词条Term并对词条进行标准化处理。应用场景写入文档时对text类型字段分词构建倒排索引搜索时对用户输入的关键词分词进行匹配2.2 分析器核心价值没有分析器就没有 ES 的全文检索、模糊匹配、智能搜索。三、分析器的三大组成部分必考核心一个完整的 Elasticsearch 分析器固定由 3 部分组成Character Filter字符过滤器Tokenizer分词器Token Filter词条过滤器3.1 分析器组成结构流程图原始文本Character Filter字符过滤器1. 清理HTML 2. 替换特殊字符Tokenizer分词器按照规则切分词语Token Filter词条过滤器小写/去停用词/同义词/去重最终词条用于构建倒排索引/搜索匹配执行顺序固定从上到下执行四、三大组成部分详细讲解作用原理示例4.1 第一部分Character Filter字符过滤器4.1.1 作用文本预处理在分词之前对原始文本进行清洗、过滤、替换处理对象整个字符串主要任务去除 HTML 标签替换特殊符号过滤无用字符转换特殊内容4.1.2 特点可以有0个、1个或多个不切分文本只修改文本4.1.3 常见类型html_strip清除 HTML 标签mapping字符替换如 → andpattern_replace正则替换4.1.4 示例原始文本h1Hello ESWorld/h1处理后Hello ES and World4.2 第二部分Tokenizer分词器【核心】4.2.1 作用切分词语分析器的核心组件唯一必须存在的组件作用将一段完整文本按照指定规则切分成一个个词条Token决定文本到底怎么拆分4.2.2 特点有且仅有 1 个不能没有决定分词粒度、规则、效果4.2.3 常见类型standard标准分词默认ik_max_wordIK 中文分词whitespace按空格分词keyword不分词pattern正则分词4.2.4 示例文本我是中国人IK 分词后[我, 是, 中国, 中国人]4.3 第三部分Token Filter词条过滤器4.3.1 作用词条精加工对分词后的词条流进行二次处理处理对象切分后的词条可执行操作转小写删除停用词的、了、is、the添加同义词去重拼音转换前缀处理4.3.2 特点可以有0个、1个或多个按顺序执行4.3.3 常见类型lowercase转小写stop去停用词synonym同义词unique去重pinyin拼音转换4.3.4 示例分词后[I, LOVE, MY, China]处理后[love, china]小写 去停用词五、分析器完整执行流程一步一步看懂原始文本我爱《Elasticsearch》核心技术执行步骤Character Filter去除特殊符号 →我爱Elasticsearch核心技术TokenizerIK 分词 →[我, 爱, Elasticsearch, 核心, 技术]Token Filter小写转换 →elasticsearch去停用词 → 去掉我最终词条 →[爱, elasticsearch, 核心, 技术]六、三大组件对比总结表组件名称执行顺序数量要求主要作用处理对象Character Filter第1步0~N文本预处理、清洗、替换完整字符串Tokenizer第2步必须1个切分词语、生成词条完整字符串Token Filter第3步0~N词条标准化、增删改分词后的词条七、分析器在 ES 中的两个使用时机7.1 写入时索引分析器文档 → 分析器 → 分词 → 构建倒排索引7.2 查询时搜索分析器用户关键词 → 分析器 → 分词 → 匹配倒排索引重点写入和查询必须使用同一个分析器否则搜不到数据八、自定义分析器示例可直接使用PUT /my_index { settings: { analysis: { char_filter: { my_char_filter: { type: html_strip // 清除HTML } }, tokenizer: ik_max_word, // IK中文分词 filter: [ lowercase, // 小写 stop // 去停用词 ], analyzer: { my_analyzer: { char_filter: [my_char_filter], tokenizer: ik_max_word, filter: [lowercase, stop] } } } } }九、总结最重要的3句话分析器 字符过滤器 分词器 词条过滤器Tokenizer 是核心必须有且仅有一个执行流程先清洗 → 再分词 → 最后标准化理解分析器的三大组成部分你就掌握了 Elasticsearch 全文检索的底层灵魂。The End点点关注收藏不迷路