作为分析器三大组成部分的另一部分,标记过滤器(token filters)是非必要的。token filters从标记生成器tokenizer
那里接受标记输入流,可以用来修改(如将术语转成小写)、删除(如移除段词)或添加(如同义词)token
。ES提供给了很多内置的标记过滤器,这些标记过滤器可以在自定义的分析器中使用。
1. 标准标记过滤器(Standard Token Filter)
standard
标记过滤器标准化使用标准标记生成器提取的标记。目前standard
标记过滤器啥事儿都没干,如果需要在将来的版本中添加某些过滤功能,它仍然是占位符。
2. ASCII码折叠标记过滤器(ASCII Folding Token Filter)
这标记过滤器名字翻译的怪怪的,asciifolding
过滤器将ASCII码不在ASCII表前127内的字母、数字和Unicode符号转换为ASCII等效字符(如果存在的话)。比如:
curl -X PUT "localhost:9200/asciifold_example" -H 'Content-Type: application/json' -d'
{
"settings" : {
"analysis" : {
"analyzer" : {
"default" : {
"tokenizer" : "standard",
"filter" : ["standard", "asciifolding"]
}
}
}
}
}
'
asciifolding
过滤器是可配置的,可接受的参数有:
preserve_original
:表示是否保留原始标记以及输出折叠的标记,默认为false
;
下面是栗子:
curl -X PUT "localhost:9200/asciifold_example" -H 'Content-Type: application/json' -d'
{
"settings" : {
"analysis" : {
"analyzer" : {
"default" : {
"tokenizer" :