加载中

唯一标记过滤器

从流中移除重复的标记。例如,您可以使用 unique 过滤器将 the lazy lazy dog 更改为 the lazy dog

如果 only_on_same_position 参数设置为 trueunique 过滤器将仅移除相同位置的重复标记。

注意

only_on_same_positiontrue 时,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"
}

该过滤器移除了 thefox 的重复标记,产生以下输出

[ 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
        }
      }
    }
  }
}
© . This site is unofficial and not affiliated with Elasticsearch BV.