elasticsearch-es 分析器
analysis 分析
分析是在文档被发送并加入倒排索引之前 ,es 会先对文本进行一系列处理
- 字符过滤: 使用字符过滤器转变字符, 如将
hello es
改成hello elasticsearch
- 文本切分为分词: 将文本切分为单个或者多个分词
- 分词过滤: 使用分词过滤器转变每个分词
- 分词索引:将分词存储到索引中
分析器,分词器,分词过滤器
一个分析器包括一个可选的字符过滤器,一个单个分词器,0个或者多个分词过滤器
文本
------------------
|分析器
| |
| |
| V
| 字符过滤器
| |
| V
| 分词器
| |
| V
| 分词过滤器(0~n)
| |
|-------------------
| |
| V
| 输出分词
分析器
内置analyzer分类:
- standard(标准分析器)
- simple: 小写转换分词
- whitespace(空白分析器): 根据空白将文本分词
- stop(停用词分析器): 过滤了停用词
- keyword(关键词分析器): 将整个字段作为单独的分词,最好是将 index 设置成
not_anylyzed
- pattern(模式分析器)
- snowball(雪球分析器): 除了使用标准分词器和分词过滤器,也使用了小不害怕分词过滤器和停用器
分词器
内置分词器:
- standard tokenizer(标准分词器): 最大长度255,移除了逗号和句号等标点符号
- keyword tokenizer(关键词分词器)
- letter tokenizer(字母分词器): 根据非字母的符号,将文本分成分词
- lowercase tokenizer(小写分词器)
- whitespace tokenizer(空白分词器)
- pattern tokenizer(模式分词器): 指定任一模式将文本切分为分词
分词过滤器
文本
------------------
|分词过滤器链
| |
| |
| V
| 小写
| |
| V
| 停用词
| |
| V
| 同义词...
| |
|-------------------
| |
| V
内置分词过滤器:
- standard token filter(标准分词过滤器): 其实什么也没有做
- lowercase token filter (小写分词过滤器)
- length token filter(长度分词过滤器): 将长度超出最长和最短限制的单词过滤
- stop token filter(停用词过滤器): 将停用词从分词流中移除
- truncate token filter(截断分词过滤器)
- reverse token filter(颠倒分词过滤器): 将分词颠倒并过滤
- synonym token filter(同义词过滤器)