唯一词元过滤器
编辑唯一词元过滤器编辑
从流中删除重复的词元。例如,您可以使用 unique
过滤器将 the lazy lazy dog
更改为 the lazy dog
。
如果 only_on_same_position
参数设置为 true
,则 unique
过滤器仅删除相同位置的重复词元。
当 only_on_same_position
为 true
时,unique
过滤器的作用与 remove_duplicates
过滤器相同。
示例编辑
以下 分析 API 请求使用 unique
过滤器从 the quick fox jumps the lazy fox
中删除重复的词元
response = client.indices.analyze( body: { tokenizer: 'whitespace', filter: [ 'unique' ], text: 'the quick fox jumps the lazy fox' } ) puts response
GET _analyze { "tokenizer" : "whitespace", "filter" : ["unique"], "text" : "the quick fox jumps the lazy fox" }
该过滤器删除了 the
和 fox
的重复词元,产生了以下输出
[ the, quick, fox, jumps, lazy ]
添加到分析器编辑
以下 创建索引 API 请求使用 unique
过滤器来配置一个新的 自定义分析器。
response = client.indices.create( index: 'custom_unique_example', body: { settings: { analysis: { analyzer: { standard_truncate: { tokenizer: 'standard', filter: [ 'unique' ] } } } } } ) puts response
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
。
response = client.indices.create( index: 'letter_unique_pos_example', body: { settings: { analysis: { analyzer: { letter_unique_pos: { tokenizer: 'letter', filter: [ 'unique_pos' ] } }, filter: { unique_pos: { type: 'unique', only_on_same_position: true } } } } } ) puts response
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 } } } } }