多语言展示
当前在线:641今日阅读:103今日分享:49

Elasticsearch 十三、分词器Tokenizer

全文搜索引擎对文档进行分析,首先通过Tokenizer得到Token,Token通过Token Filter获得Term。Token有称为标记、词元,Term称为词。ES中Tokenizer大都认为是分词器。这里我们主要说Tokenizer,不看Filter,所以本文中的Token我们就称为是词。
方法/步骤
1

1、标准分词器 Standard Tokenizer一个标准的分词器提供基于语法的分词器,那是一个适合大部分欧洲语言文档的很好的分词器。分词器实现Unicode文本分割算法,该分割算法在Unicode Standard Annex #29中指定。

2

2、连词分词器 NGram Tokenizer如果词的长度大于最短词长度则分词,则依次分成最小长度递进到最大长度的词。例如:中华人民共和国 min_gram=2,max_gram=3。结果:中华、中华人、华人、华人民、人民、人民共、民共、民共和、共和、共和国、和国。

3

3、边际连词分词器 Edge NGram Tokenizer该分词器和nGram分词器很类似,但是分的词仅仅包含该词的开始部分。分词属性和NGram Tokenizer的一样。例如:中华人民共和国 全国人大 min_gram=2,max_gram=5,'token_chars':['letter','digit']结果:中华、中华人、中华人民、中华人民共、全国、全国人、全国人大注意:单个词'中华人民共和国'的长度大于5,'和国'不会出现在分词结果中。

4

4、关键字分词器 Keyword Tokenizerkeyword分词器输出和它接收到的相同的字符串。即不分词,可以设置关键字的长度buffer_size默认256。

5

5、字符分词器 Letter Tokenizer字符(letter)类型分词器将文本按非字符(non-lentter)进行分词。这就是说,它定义临近的最大长度的字符为一个词。注意,这个适合大部分欧洲的语言,但是对一些亚洲的语言来说就很糟糕了,它们的词不是以空格来分割的。

6

6、小写分词器 Lowercase Tokenizerlowercase将词全部转换成小写,其他的同letter Tokenizer

7

7、空格分词器Whitespace Tokenizer以空格来分词

8

8、模式分词器/正则分词器 Pattern Tokenizer根据正则表达式的匹配规则来分词。group set to -1 (the default) is equivalent to 'split'. Using group >= 0 selects the matching group as the token. For example, if you have:pattern = '([^']+)' group   = 0 input   = aaa 'bbb' 'ccc'the output will be two tokens: 'bbb' and 'ccc' (including the ' marks). With the same input but using group=1, the output would be: bbb and ccc (no ' marks).

9

9、标准Email URL分词器 UAX Email URL Tokenizer和标准分词器一样,但是把email和url当作一个词。UAX Email URL Tokenizer有人翻译为'不拆分email、url的分词器',觉得不太恰当,UAX个人认为是Unicode Standard Annex,见标准分词器中。

10

10、路径层次分词器 Path Hierarchy Tokenizer例如:/something/something/else结果:/something、/something/something、/something/something/else默认定界符: /

11

11、典型的编译器 Classic Tokenizerclassic分词器提供基于语法的分词器,这对英语文档是一个很好的分词器。

12

12、泰语分词器 Thai Tokenizer对泰文进行分词,如果用在其他语言上同标准分词器。

推荐信息