剖析分词器

IT知识
396
0
0
2022-07-24

分析器——无论是内置的还是自定义的——只是一个包,它包含三个较低层次的构建块:字符过滤器、标记器和标记过滤器。

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

字符过滤器

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

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

标记器

标记器接收字符流,将其分解为单个标记(通常是单个单词),并输出标记流。例如,只要看到任何空白,空白标记器就会将文本分割为标记。它会将文本Quick brown fox!转换成术语[Quick,Brown,fox!]

标记化器还负责记录每个术语的顺序或位置,以及该术语所代表的原始单词的开始和结束字符偏移量。

一个分析器必须只能有一个标记赋予器。

标记过滤器

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

牌过滤器不允许更改每个令牌的位置或字符偏移量.

分析器可以有零个或多个令牌过滤器,它们是按顺序应用的