Elasticsearch 7.10 之 Anatomy of an analyzer

分析器(无论是内置的还是自定义的)只是一个包,其中包含三个较低级别的构建块:character filters , tokenizers and token filters 。

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

Character filters

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

分析器可能具有零个或多个按顺序应用的字符过滤器。

Tokenizer

分词生成器接收字符流,将其分解为每个分词(通常为单个单词),然后输出分词流。例如, whitespace 分词器在看到任何空格时都会将文本分成分词。它将转换为文本 “Quick brown fox!” 为 [Quick, brown, fox!] 。

分词器还负责记录每个词的顺序或位置以及该词表示的原始单词的开始和结束字符偏移量。

一个分析器必须具有一个分词器。

Token filters

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

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

分析器可能具有零个或多个按顺序应用的分词过滤器。

详情见官网:https://www.elastic.co/guide/en/elasticsearch/reference/current/analyzer-anatomy.html

你可能感兴趣的:(elasticsearch,elasticsearch)