ElastIcSearch分词器
Analysis 和 Analyzer
Analysis
: 文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词(Analyzer)。Analysis是通过Analyzer来实现的。分词就是将文档通过Analyzer分成一个一个的Term(关键词查询),每一个Term都指向包含这个Term的文档
。
Analyzer 组成
-
注意: 在ES中默认使用标准分词器: StandardAnalyzer 特点: 中文单字分词 单词分词
我是中国人 this is good man----> analyzer----> 我 是 中 国 人 this is good man
分析器(analyzer)都由三种构件组成的:
character filters
,tokenizers
,token filters
。
-
character filter
字符过滤器- 在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签(hello --> hello),& --> and(I&you --> I and you)
-
tokenizers
分词器- 英文分词可以根据空格将单词分开,中文分词比较复杂,可以采用机器学习算法来分词。
-
Token filters
Token过滤器- 将切分的单词进行加工。大小写转换(例将“Quick”转为小写),去掉停用词(例如停用词像“a”、“and”、“the”等等),加入同义词(例如同义词像“jump”和“leap”)。
注意:
- 三者顺序: Character Filters—>Tokenizer—>Token Filter
- 三者个数:Character Filters(0个或多个) + Tokenizer + Token Filters(0个或多个)