分析器的剖析编辑

分析器(无论是内置的还是自定义的)都只是一个包含三个较低级别构建块的包:字符过滤器分词器词元过滤器

内置的 分析器 将这些构建块预先打包成适合不同语言和文本类型的分析器。Elasticsearch 还公开了各个构建块,以便可以将它们组合起来定义新的 自定义 分析器。

字符过滤器编辑

字符过滤器接收原始文本作为字符流,并且可以通过添加、删除或更改字符来转换该流。例如,字符过滤器可用于将印度-阿拉伯数字 (٠‎١٢٣٤٥٦٧٨‎٩‎) 转换为其阿拉伯-拉丁语等效数字 (0123456789),或者从流中去除 <b> 等 HTML 元素。

分析器可以有 零个或多个 字符过滤器,它们按顺序应用。

分词器编辑

分词器接收字符流,将其分解为单个词元(通常是单个单词),并输出词元流。例如,空格 分词器会在看到任何空格时将文本分解为词元。它会将文本 "Quick brown fox!" 转换为词元 [Quick, brown, fox!]

分词器还负责记录每个词元的顺序或位置,以及该词元所代表的原始单词的起始和结束字符偏移量

分析器必须有 一个 分词器

词元过滤器编辑

词元过滤器接收词元流,并且可以添加、删除或更改词元。例如,小写 词元过滤器将所有词元转换为小写,停用词 词元过滤器从词元流中删除常见词(停用词),例如 the,而 同义词 词元过滤器将同义词引入词元流。

不允许词元过滤器更改每个词元的位置或字符偏移量。

分析器可以有 零个或多个 词元过滤器,它们按顺序应用。