ElasticSearch学习--分词器的介绍和使用(二)
的有关信息介绍如下:
本篇经验将继续分享ElasticSearch分词器,包括内置分词器 Keyword Analyzer , Pattern Analyzer ,Language Analyzers 以及通过插件方式扩展安装的 ICU Analyzer ,
更多分词器的使用经验请参考如下经验引用。
0ElasticSearch学习--分词器的介绍和使用(一)
Keyword Analyzer
1. 不做任何分词处理,全部字符串作为一个完整的关键字输出
图1示:英文分词的效果
图2示:中文分词的效果
对于特殊业务场景,我们不想做任何分词处理的话,可以使用该分词器。
Pattern Analyzer
1. 基于正则表达式的分词器,默认使用的正则表达式是 \W+ 即所有非数字、字母、下划线的字符
2. 切分后全部转换为小写
3. 保留StopWords(停止词,如英文的in a the 等)
图1示:英文分词的效果
图2示:中文分词的效果,直接返回空集,该分词器无法应对中文分词
Language Analyzer
1. ES针对特定语言推出的分词器,目前大概34种左右
2. english分词器会对英文单词的复数和ing形式转换为原始形式,并进行小写处理,同时删除停止词
3. cjk分词器处理中文,是每两个中文字符均拆出来作为一个词
图1示:english分词器的英文分词效果
图2示:cjk分词器的中文分词效果
ICU Analyzer
上述所有内置的分词器在处理英文时,各有优缺点,但在处理中文分词时,均无法胜任,那对于中文分词怎么办呢? 我们这里先介绍一个ES中文分词插件 analysis-icu (关于如何安装该插件,可以参考如下经验引用)
1. 使用 icu_analyzer 对英文文本进行分词,其效果和 pattern analyzer 基本一致,使用 \W+ 进行分词,并且进行转小写处理,保留停止词
图1示,icu_analyzer 对中文进行分词的效果,可以看出其基本是按照中文词语的方式进行,对于部分词的拆分有瑕疵,基本能满足中文分词的需求
图2示,icu_analyzer 对英文分词的效果
0ElasticSearch学习--ES安装及插件安装



