1 组成
分析器(analyzer)都由三种构件块组成的:character filters , tokenizers , token filters。
1 character filter 字符过滤器
在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签(hello —> hello),& —> and(I&you —> I and you)
2 tokenizers 分词器
英文分词可以根据空格将单词分开,中文分词比较复杂,可以采用机器学习算法来分词。
3 Token filters Token过滤器
将切分的单词进行加工。大小写转换(例将“Quick”转为小写),去掉词(例如停用词像“a”、“and”、“the”等等),或者增加词(例如同义词像“jump”和“leap”)。
三者顺序:Character Filters—>Tokenizer—>Token Filter
三者个数:analyzer = CharFilters(0个或多个) + Tokenizer(恰好一个) + TokenFilters(0个或多个)
2 分词器的分类
ES内置的分词器有(以6.7版本为基准):
Standard Analyzer 大小写转换 大小写拆分
Simple Analyzer
Whitespace Analyzer 不会转换 只会空格拆分
Stop Analyzer
Keyword Analyzer
Pattern Analyzer
Language Analyzers 特定语言拆分
Fingerprint Analyzer
Custom Analyzer

中文分词器:
IK分词器
pinyin分词器

