唯一标记过滤器
从流中移除重复的标记。例如,您可以使用 unique 过滤器将 the lazy lazy dog 更改为 the lazy dog。
如果 only_on_same_position 参数设置为 true,unique 过滤器将仅移除相同位置的重复标记。
注意
当 only_on_same_position 为 true 时,unique 过滤器与 remove_duplicates 过滤器的工作方式相同。
以下 analyze API 请求使用 unique 过滤器从 the quick fox jumps the lazy fox 中移除重复的标记
GET _analyze {
"tokenizer" : "whitespace",
"filter" : ["unique"],
"text" : "the quick fox jumps the lazy fox"
}
该过滤器移除了 the 和 fox 的重复标记,产生以下输出
[ the, quick, fox, jumps, lazy ]
以下 create index API 请求使用 unique 过滤器来配置一个新的 自定义分析器。
PUT custom_unique_example {
"settings" : {
"analysis" : {
"analyzer" : {
"standard_truncate" : {
"tokenizer" : "standard",
"filter" : ["unique"]
}
}
}
}
}
only_on_same_position- (可选, 布尔值) 如果设置为
true,则仅移除相同位置的重复标记。默认为false。
要自定义 unique 过滤器,请复制它以创建新的自定义标记过滤器的基础。您可以使用其可配置参数来修改过滤器。
例如,以下请求创建了一个自定义的 unique 过滤器,并将 only_on_same_position 设置为 true。
PUT letter_unique_pos_example {
"settings": {
"analysis": {
"analyzer": {
"letter_unique_pos": {
"tokenizer": "letter",
"filter": [ "unique_pos" ]
}
},
"filter": {
"unique_pos": {
"type": "unique",
"only_on_same_position": true
}
}
}
}
}