Elasticsearch系列-Analyzer分词

Elasticsearch系列-Analyzer分词

  • Analysis与Analyzer
  • Analyzer的组成
  • ES的内置分词器
  • 中文分词器
  • Analyzer API
  • 结语

Analysis与Analyzer

Analysis:文本分析是把全文本转换一系列单词(term/ token)的过程,也叫分词。
Analyzer:ES的Analysis是通过Analyzer来实现的,ES有内置的分析器,也可以使用一些定制化分析器。
除了在数据写入时会做分词处理,在匹配Query语句时,也会使用到分词处理,使用到分词器去对查询语句进行分析。

Analyzer的组成

分词器是专门处理分词的组件,Analyzer由三部分组成:

  • Character Filters:针对原始文本处理,例如去除html。
  • Tokenizer:按照规则,切分为单词。
  • Token Filter:将切分的单词进行加工,小写,删除stopwords,增加同义词。

ES的内置分词器

分词器 描述
Standard Analyzer 默认分词器,按词切分,小写处理
Simple Analyzer 按照非字母切分(符号被过滤),小写处理
Stop Analyzer 小写处理,停用词过滤(the,a, is)
Whitespace Analyzer 按照空格切分,不转小写
Keyword Analyzer 不分词,直接将输入当做输出
Patter Analyzer 正则表达式,默认 \W+(非字符分隔)
Language 提供了30多种常见语言的分词器
Customer Analyzer 自定义分词器
分词器 Tokenizer Token Filters Character Filters
Standard Analyzer Standard Standard,Lower Case,Stop(默认关闭)
Simple Analyzer Lower Case
Stop Analyzer Lower Case Stop
Whitespace Analyzer WhiteSpace
Keyword Analyzer Keyword
Patter Analyzer Pattern Lower Case,Stop

中文分词器

分词器 描述 Tokenizer Token Filters Character Filters
ICU Analyzer ICU中文分词 ,需要安装Elasticsearch-plugin install analyzer-icu ICU Tokenizer Normalization,Folding,Collation,Transform Normalization
IK 支持自定义词库,支持热更新分词字典
THULAC 清华大学自然语言处理和社会人文计算实验室的一套中文分词器

Analyzer API

Analyzer API官网介绍

GET /_analyze

POST /_analyze

GET /<index>/_analyze

POST /<index>/_analyze

示例:
GET /_analyze
{
     
  "analyzer" : "standard",
  "text" : "Quick Brown Foxes!"
}

结语

更多详细分词处理,可以去官网看看。

你可能感兴趣的:(elasticsearch)