参考:https://learnku.com/articles/35136
https://www.cnblogs.com/cjsblog/p/10171695.html
https://blog.csdn.net/white_while/article/details/98504574
1.Analyzer 由三部分组成:
(1)Character Filters 字符过滤器(针对原始文本处理,例如去除 html)
字符过滤器以字符流的形式接收原始文本,并可以通过添加、删除或更改字符来转换该流。
一个analyzer可以有0个或多个character filters。
(2)Tokenizer(按照规则切分为单词)
Tokenizer 负责将文本拆分成单个token ,这里token就指的就是一个一个的单词。就是一段文本被分割成好几部分。
一个analyzer有且只能有一个tokenizer
(3)Token Filter (将切分的单词进行加工,小写,删除 stopwords,增加同义语)
token过滤器接收token流,并且可能会添加、删除或更改tokens。
例如,一个lowercase token filter可以将所有的token转成小写。stop token filter可以删除常用的单词,比如 the 。synonym token filter可以将同义词引入token流。
一个analyzer可以有0个或多个token filters。
2.内置analyzer与更改:
(1)Standard Analyzer - 默认分词器,按词切分,小写处理
更改:以配置my_analyzer分词器为例,基于standard analyzer,配置为删除预定义的英语停止词列表。
PUT /index
{
"settings": {
"analysis": {
"analyzer": {