Analysis与Analyzer
- Analysis:文本分析,将文本转换成一系列单词(term/token)的过程也叫分词
- Analyzer:分析器,实现分词的工具,ES自带有部分分析器,用户可以自定义
Analyzer的组成
- 分析器由三部分组成,Character Filter(针对原始文本处理,例如去掉HTML)、Tokenizer(按照规则切分单词)、Token Filters(将切分的单词进行加工,小写,删除stopwords,增加同义词等)
ES内置分析器
- Standard Analyzer - 默认分析器,英文按词切分,中文按字切分,过滤符号,小写处理
- Simple Analyzer - 按非字母(数字,符号,空格)切分,过滤符号,小写处理
- Stop Analyzer - 按非字母(数字,符号,空格)切分,过滤符号、停用词(the,a,is),小写处理
- Whitespace Analyzer - 按照空格切分,不转小写
- Keyword Analyzer - 不分词,直接将输入当输出
- Pattern Analyzer - 正则表达式进行分词,默认是\W+,非字符的符号(符号,空格,中文)进行切分,小写处理,过滤停用词
- Language - 提供了30多种常见西语分析器
- 中文分词器 - 根据中文语义切分多个词语,eg:IK,ICU,THULAC
- Customer Analyzer - 用户自定义分析器
Standard Analyzer(ES默认分词器)
英文按单词切分,中文按单字切分,过滤符号,保留数字,中英文,且小写处理英文
Simple Analyzer
按照非字母切分,即数字,符号和空格切分,并去除掉数字,符号和空格,且英文小写处理
Stop Analyzer
按照非字母切分,即数字,符号和空格切分,并去除掉停用词,数字,符号和空格,且英文小写处理
Whitespace Analyzer
按照空格切分,英文不转成小写
Keyword Analyzer
不分词,直接将输入当一个term输出
Pattern Analyzer
默认是\W+,非字符的符号(符号,空格,中文)进行切分,英文小写处理,且过滤掉停用词