在 Elasticsearch 中,Analysis(分析/分词) 是将非结构化的文本数据(Text)转换为结构化的词条(Term/Token)的过程。这个过程对于构建倒排索引(Inverted Index)至关重要,直接决定了搜索的准确性和召回率。 Analysis 主要发生在两个阶段: 1. 写入(Index)时:将文档内容分词后存入倒排索引。 2. 查询(Search)时:将用户的搜索关键词(全文检索时)分词,以便与倒排索引中的词条进行匹配。 --- Analyzer(分析器)的组成 一个 Analyzer 就像一个流水线(Pipeline),严格按照顺序由以下 三部分 组成: 1. Character Filters(字符过滤器) 执行顺序:第一步。 数量:0 个或多个。 作用:在分词之前对原始文本进行处理。主要用于整理文本。 去除字符(例如:去除 HTML 标签)。 替换字符(例如:将 替换为 ,或者将表情符号替换为文字)。 常见例子: :去除 , 等 HTML 标签。 :自定义映射替换。 2. Tokenizer(分词器) 执行顺序:第二步(核心)。 数量:必须且只能...