Elasticsearch 十三、分词器Tokenizer
的有关信息介绍如下:
全文搜索引擎对文档进行分析,首先通过Tokenizer得到Token,Token通过Token Filter获得Term。
Token有称为标记、词元,Term称为词。ES中Tokenizer大都认为是分词器。这里我们主要说Tokenizer,不看Filter,所以本文中的Token我们就称为是词。
1、标准分词器 Standard Tokenizer
一个标准的分词器提供基于语法的分词器,那是一个适合大部分欧洲语言文档的很好的分词器。分词器实现Unicode文本分割算法,该分割算法在Unicode Standard Annex #29中指定。
2、连词分词器 NGram Tokenizer
如果词的长度大于最短词长度则分词,则依次分成最小长度递进到最大长度的词。
例如:中华人民共和国min_gram=2,max_gram=3。结果:中华、中华人、华人、华人民、人民、人民共、民共、民共和、共和、共和国、和国。
3、边际连词分词器 Edge NGram Tokenizer
该分词器和nGram分词器很类似,但是分的词仅仅包含该词的开始部分。
分词属性和NGram Tokenizer的一样。
例如:中华人民共和国 全国人大min_gram=2,max_gram=5,"token_chars":["letter","digit"]
结果:中华、中华人、中华人民、中华人民共、全国、全国人、全国人大
注意:单个词'中华人民共和国'的长度大于5,'和国'不会出现在分词结果中。
4、关键字分词器Keyword Tokenizer
keyword分词器输出和它接收到的相同的字符串。即不分词,可以设置关键字的长度buffer_size默认256。
5、字符分词器Letter Tokenizer
字符(letter)类型分词器将文本按非字符(non-lentter)进行分词。这就是说,它定义临近的最大长度的字符为一个词。注意,这个适合大部分欧洲的语言,但是对一些亚洲的语言来说就很糟糕了,它们的词不是以空格来分割的。
6、小写分词器Lowercase Tokenizer
lowercase将词全部转换成小写,其他的同letter Tokenizer
7、空格分词器Whitespace Tokenizer
以空格来分词
8、模式分词器/正则分词器 Pattern Tokenizer
根据正则表达式的匹配规则来分词。
groupset 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 = 0input = 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:bbbandccc(no'marks).
9、标准Email URL分词器 UAX Email URL Tokenizer
和标准分词器一样,但是把email和url当作一个词。
UAX Email URL Tokenizer有人翻译为'不拆分email、url的分词器',觉得不太恰当,UAX个人认为是Unicode Standard Annex,见标准分词器中。
10、路径层次分词器 Path Hierarchy Tokenizer
例如:/something/something/else
结果:/something、/something/something、/something/something/else
默认定界符: /
11、典型的编译器Classic Tokenizer
classic分词器提供基于语法的分词器,这对英语文档是一个很好的分词器。
12、泰语分词器 Thai Tokenizer
对泰文进行分词,如果用在其他语言上同标准分词器。



