一、什么是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