Elasticsearch中什么是分析器(Analyzer)?它由哪些组件组成?
在Elasticsearch(ES)中,分析器(Analyzer)是处理文本的核心组件,负责将原始文本转换为适合索引和搜索的词项(Term)。它直接影响搜索的准确性和性能,是构建高效搜索系统的关键。
一、分析器的核心作用
1. 分词(Tokenization):将文本拆分为独立的词(Token)。
- 例如: “Hello World!” → [“Hello”, “World”] 。
2. 标准化(Normalization):将词转换为统一格式,提高匹配率。 - 例如:将大写转为小写、移除标点符号、词干提取(如 running → run )。
3. 索引与搜索一致性:确保查询时的文本处理方式与索引时一致,避免匹配失败。
二、分析器的组件构成
分析器由三部分顺序处理组件组成:
1. 字符过滤器(Character Filters)
- 预处理原始文本,如移除HTML标签、替换特殊字符。
- 示例:将 “&” 转换为 “and” 。
2. 分词器(Tokenizer) - 将文本拆分为词(Tokenÿ