Elasticsearch分词(Analyzer)

2022-07-10 12:35:37

一、什么是Analysis ?

Analysis 叫做分词,就是将文本转换为一系列单词(term/token)的过程。
Analysis 是通过Analyzer来实现的。
可使用Elasticserach内置的分析器或按需优化分需求或安装分析器插件 。
在数据写入的时候转换词条于Query语句查询的时候也需要用相同的分析器。

二、Analyzer的组成与工作机制

  • Character Filter 针对原始文本处理,例如去除html。
  • Tokenizer 按规则切分为单词。
  • Tokenizer Filter将切分的单词进行加工,小写,删除stopwords,增加同义词。
    在这里插入图片描述

三、Elasticserach内置的一些分词器

1) _analyzer API 三种使用方法
在这里插入图片描述
2) Standard Analyzer
原理
在这里插入图片描述
示例
在这里插入图片描述
3)Simple Analyzer
原理
在这里插入图片描述
示例
在这里插入图片描述
4)Whitespace Analyzer
原理
在这里插入图片描述
示例
在这里插入图片描述

5)Stop Analyzer
原理
在这里插入图片描述
示例
在这里插入图片描述
6)Keyword Analyzer
原理
在这里插入图片描述
示例
在这里插入图片描述
7)Pattern Analyzer
原理
在这里插入图片描述
示例
在这里插入图片描述
8)Language Analyzer
支持按语言分词
在这里插入图片描述
示例
在这里插入图片描述

四、中文分词

中文分词的难点:

  • 中文句子,切成一个一个词(不是一个一个字)。
  • 英文中,单词有自然的空格作为分隔。
  • 一句中文,在不同的上下文,有不同的理解。
    1)ICU Analyzer
    原理在这里插入图片描述
    演示(需要提前安装 ICU Analyze 插件)
    在这里插入图片描述
    2)IK
    在这里插入图片描述
    3) THULAC
    在这里插入图片描述
  • 作者:我傲故我狂
  • 原文链接:https://blog.csdn.net/qq_36918149/article/details/104233321
    更新时间:2022-07-10 12:35:37