Elasticsearch Analysis(分析器) 学习记录

在es中,一个分词器通常可以包含三个模版,不论是内置的还是自定义:character filters,tokenizers, token filters.

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

character filters字符过滤器

字符筛选器接收原始文本作为字符流,并通过添加、删除或更改字符来转换流,例如,一个字符过滤器可用于将印度阿拉伯数字(٠‎١٢٣٤٥٦٧٨‎٩‎)转化成阿拉伯数字(0123456789),或者从流中剥离HTML <b> 元素。

分析器可能有零个或多个字符过滤器,这些过滤器是按顺序应用的


tokenizers(分词器)

tokenizer接收一个字符流,将其分解为单个令牌(通常是单个单词),并输出一个令牌流。例如,每当它看到任何空白时,一个空格记号赋予器将文本分解为令牌。它将把“敏捷的棕色狐狸”改为“敏捷,棕色,狐狸!”

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

一个分析仪必须只有一个记号笔。


token filters(令牌过滤器)

令牌过滤器接收令牌流,并可添加、删除或更改令牌。例如,一个小写的令牌过滤器将所有令牌转换为小写,一个停止令牌过滤器删除了与令牌流相似的普通单词(停止字),并且一个同义词令牌过滤器将同义词引入到令牌流中。

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

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


Analyzers

Configuring built-in analyzers(配置内置分析器)

内置的分析程序可以直接使用,不需要任何配置。但是,其中一些支持配置选项来改变它们的行为。例如,可以配置标准分析器来支持stop单词列表。

Standard Analyzer(标准分析器)

标准分析器是在没有指定的情况下使用的默认分析器。它提供基于语法的标记化(基于Unicode的文本分割算法,如Unicode标准附件#29所指定),并且适用于大多数语言。






keep_first_letter                                          阿莫西林>amxl                                                                      default: true

keep_separate_first_letter                                 阿莫西林>a,m,x,l                                                                   default: false

lowercase                                                  lowercase non Chinese letters(小写非中文字母)                                       default: true

trim_whitespace                                            剔除空格                                                                            default: true

keep_full_pinyin                                           阿莫西林>[a,mo,xi,lin]                                                              default: true

keep_joined_full_pinyin                                    阿莫西林> [amoxilin]                                                                default: false


keep_none_chinese_in_joined_full_pinyin                    阿莫西林123>amoxilin123                                                             default: false


none_chinese_pinyin_tokenize                               amoxilin123jiaonang>a,mo,xi,lin,123,jiao,nang                                       default: true


keep_none_chinese_in_first_letter                          阿莫西林AT2018->amxlat2018                                                          default: true

remove_duplicated_term                                     when this option enabled, duplicated term will be removed to save index             default: false

limit_first_letter_length                                  set max length of the first_letter result                                           default: 16

keep_original                                              when this option enabled, will keep original input as well                         default: false

猜你喜欢

转载自blog.csdn.net/sinat_24798023/article/details/80223506