您的位置首页生活百科

ElasticSearch学习--分词器的介绍和使用(二)

ElasticSearch学习--分词器的介绍和使用(二)

的有关信息介绍如下:

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安装及插件安装