《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(8) https://developer.aliyun.com/article/1229767
配置项
stopwords 配置停用词,可以根据内置语言设置如 english 或者定义停用词数组,默认不启用 _english_。
stopwords_path 配置停用词的文件路径,需要放在 Elasticsearch 目录中的 config 目录中。
ignore_case 单词是否忽略大小写,默认 false。
Synonym token filter
synonym 过滤器用于指定文本同义词映射关系,比英文,缩写,俗称,旧称等。目的是为了提高检索时具有相同含义的文档可以都匹配到。比如想网购一台 switch 游戏机,我们在商城中搜索的时候与之关联的可以是[ 任天堂,ns主机,游戏掌机,红蓝机 ]等。当我输入红蓝机,商城中也仍然可以匹配到 switch 游戏机的信息。
GET _analyze { "tokenizer": "standard", "filter": [ { "type": "synonym", "synonyms": [ "ns主机,游戏掌机,红蓝机,任天堂,switch => switch" ] } ], "text": [ "红蓝机" ] } #Response [ switch ]
配置项
synonyms 提供同义词映射列表,每一个同义词映射格式依照 “同义词1[,同义词2]... => 目标词” 定义。
synonyms_path 指定同义词映射文件目录地址。文件需要放在 Elasticsearch 目录中的
config 目录中,以 UTF-8 格式存储,每行代表一个同义词映射。
lenitent 是否忽略映射过程中发生异常,默认为 false。
Trim token filter
trim 过滤器对单词两端进行去空格。
GET /_analyze { "tokenizer": "standard", "filter": [ "trim" ], "text": " Hello " } #Response [ Hello ]
Reverse token filter
reverse 过滤器将单词进行反向输出,通常用于后缀匹配,如按照扩展名搜索或尾号匹配。
GET /_analyze { "tokenizer": "standard", "filter": [ "reverse" ], "text": " Hello " } #Response [ olleH ]
Truncate token filter
truncate 过滤器对单词超出长度部分进行截断,默认长度为10。
GET /_analyze { "tokenizer": "standard", "filter": [ { "type": "truncate", "length": 4 } ], "text": " Mathematics is hard to know" } #Response [ Math, is, hard, to, know ]
配置项
length 设置单词最大长度,超出部分将会被截断,默认长度为10。
Unique token filter
unique 过滤器删除重复的单词,数组中每个单词保证唯一。
GET /_analyze { "tokenizer": "standard", "filter": [ { "type": "unique" } ], "text": " A good cook could cook cookies?" } #Response [ A, good, cook, could, cookies ]
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(10) https://developer.aliyun.com/article/1229763