Link Search Menu Expand Document Documentation Menu

词元过滤器

分词过滤器接收来自分词器的分词流,并对分词进行添加、删除或修改。例如,分词过滤器可以将分词小写,使得 Actions 变为 action;移除停用词,例如 than;或者添加同义词,例如为单词 speak 添加同义词 talk

下表列出了 OpenSearch 支持的所有分词过滤器。

分词过滤器 底层 Lucene 分词过滤器 描述
apostrophe ApostropheFilter 在每个包含撇号的分词中,apostrophe 分词过滤器会移除撇号本身及其后的所有字符。
asciifolding ASCIIFoldingFilter 转换字母、数字和符号字符。
cjk_bigram CJKBigramFilter 为中文、日文和韩文 (CJK) 分词形成二元词。
cjk_width CJKWidthFilter 根据以下规则规范化中文、日文和韩文 (CJK) 分词
- 将全角 ASCII 字符变体折叠为等效的基本拉丁字符。
- 将半角片假名字符变体折叠为等效的假名字符。
classic ClassicFilter 对经典分词器生成的分词执行可选的后处理。移除所有格('s)并从缩写词中移除 .
common_grams CommonGramsFilter 为一组常用术语生成二元词。输出包含单个术语和二元词。
conditional ConditionalTokenFilter 对与脚本中提供的条件匹配的分词应用一个有序的分词过滤器列表。
decimal_digit DecimalDigitFilter 将 Unicode 十进制数字通用类别中的所有数字转换为基本拉丁数字(0–9)。
delimited_payload DelimitedPayloadTokenFilter 根据提供的分隔符,将分词流分离为带相应有效负载的分词。分词由分隔符前的所有字符组成,有效负载由分隔符后的所有字符组成。例如,如果分隔符是 |,那么对于字符串 foo|barfoo 是分词,bar 是有效负载。
delimited_term_freq DelimitedTermFrequencyTokenFilter 根据提供的分隔符,将分词流分离为带相应术语频率的分词。分词由分隔符前的所有字符组成,术语频率是分隔符后的整数。例如,如果分隔符是 |,那么对于字符串 foo|5foo 是分词,5 是术语频率。
dictionary_decompounder DictionaryCompoundWordTokenFilter 分解许多日耳曼语系语言中的复合词。
edge_ngram EdgeNGramTokenFilter 将给定分词转换为边 n-gram(从分词开头开始的 n-gram),其长度介于 min_grammax_gram 之间。可选地,保留原始分词。
elision ElisionFilter 从分词开头移除指定的省音。例如,将 l'avion(飞机)改为 avion(飞机)。
fingerprint FingerprintFilter 对分词列表进行排序和去重,并将分词连接成单个分词。
flatten_graph FlattenGraphFilter 展平由图分词过滤器(例如 synonym_graphword_delimiter_graph)生成的分词图,使该图适合于索引。
hunspell HunspellStemFilter 使用 Hunspell 规则对分词进行词干提取。由于 Hunspell 允许一个单词有多个词干,因此此过滤器可以为每个消耗的分词发出多个分词。需要配置一个或多个特定语言的 Hunspell 字典。
hyphenation_decompounder HyphenationCompoundWordTokenFilter 使用基于 XML 的连字符模式在复合词中查找潜在的子词,并根据指定的词列表检查这些子词。分词输出只包含在词列表中找到的子词。
keep_types TypeTokenFilter 保留或移除特定类型的分词。
keep_words KeepWordFilter 根据指定的词列表检查分词,并只保留列表中存在的分词。
keyword_marker KeywordMarkerFilter 将指定的分词标记为关键词,防止它们被词干提取。
keyword_repeat KeywordRepeatFilter 将每个传入的分词发出两次:一次作为关键词,一次作为非关键词。
kstem KStemFilter 为英语提供基于 KStem 的词干提取。结合了算法词干提取和内置词典。
kuromoji_completion JapaneseCompletionFilter 向分词流添加日语罗马化术语(除原始分词外)。通常用于支持日语搜索词的自动完成。请注意,当在索引分析器中使用时,此过滤器有一个 mode 参数应设置为 index;当在搜索分析器中使用时,应设置为 query。需要 analysis-kuromoji 插件。有关安装插件的信息,请参阅附加插件
length LengthFilter 移除短于或长于由 minmax 指定的长度范围的分词。
limit LimitTokenCountFilter 限制输出分词的数量。例如,可以根据分词计数限制文档字段值的大小。
lowercase LowerCaseFilter 将分词转换为小写。默认的 LowerCaseFilter 处理英语。要处理其他语言,请将 language 参数设置为 greek(使用 GreekLowerCaseFilter)、irish(使用 IrishLowerCaseFilter)或 turkish(使用 TurkishLowerCaseFilter)。
min_hash MinHashFilter 使用MinHash 技术估算文档相似度。按顺序对分词流执行以下操作
1. 对流中的每个分词进行哈希处理。
2. 将哈希值分配给桶,只保留每个桶中最小的哈希值。
3. 将每个桶中最小的哈希值作为分词流输出。
multiplexer 不适用 在相同位置发出多个分词。将每个分词分别通过每个指定的过滤器列表运行,并将结果作为单独的分词输出。
ngram NGramTokenFilter 将给定分词转换为长度介于 min_grammax_gram 之间的 n-gram。
规范化 arabic_normalization: ArabicNormalizer
german_normalization: GermanNormalizationFilter
hindi_normalization: HindiNormalizer
indic_normalization: IndicNormalizer
sorani_normalization: SoraniNormalizer
persian_normalization: PersianNormalizer
scandinavian_normalization : ScandinavianNormalizationFilter
scandinavian_folding: ScandinavianFoldingFilter
serbian_normalization: SerbianNormalizationFilter
规范化所列语言的字符。
pattern_capture 不适用 为所提供的正则表达式中的每个捕获组生成一个分词。使用Java 正则表达式语法
pattern_replace 不适用 匹配所提供的正则表达式中的模式并替换匹配的子字符串。使用Java 正则表达式语法
phonetic 不适用 使用语音编码器为分词流中的每个分词发出一个元音分词。需要安装 analysis-phonetic 插件。
porter_stem PorterStemFilter 使用Porter 词干提取算法对英语进行算法词干提取。
predicate_token_filter 不适用 移除与指定谓词脚本不匹配的分词。仅支持内联 Painless 脚本。
remove_duplicates RemoveDuplicatesTokenFilter 移除同一位置的重复分词。
reverse ReverseStringFilter 反转分词流中每个分词对应的字符串。例如,分词 dog 变为 god
shingle ShingleFilter 为分词流中的分词生成长度介于 min_shingle_sizemax_shingle_size 之间的 shingle。Shingle 类似于 n-gram,但它是使用单词而不是字母生成的。例如,添加到 unigram 列表 [contribute, to, opensearch] 的两个词 shingle 是 [contribute to, to opensearch]。
snowball 不适用 使用Snowball 生成的词干提取器对单词进行词干提取。 snowball 分词过滤器支持在 language 字段中使用以下语言:ArabicArmenianBasqueCatalanDanishDutchEnglishEstonianFinnishFrenchGermanGerman2HungarianIrishItalianKpLithuanianLovinsNorwegianPorterPortugueseRomanianRussianSpanishSwedishTurkish
stemmer 不适用 language 字段中使用的以下语言提供算法词干提取:arabicarmenianbasquebengalibrazilianbulgariancatalanczechdanishdutchdutch_kpenglishlight_englishlovinsminimal_englishporter2possessive_englishestonianfinnishlight_finnishfrenchlight_frenchminimal_frenchgalicianminimal_galiciangermangerman2light_germanminimal_germangreekhindihungarianlight_hungarianindonesianirishitalianlight_italianlatvianLithuaniannorwegianlight_norwegianminimal_norwegianlight_nynorskminimal_nynorskportugueselight_portugueseminimal_portugueseportuguese_rslpromanianrussianlight_russiansoranispanishlight_spanishswedishlight_swedishturkish
stemmer_override 不适用 通过应用自定义映射来覆盖词干提取算法,从而使提供的术语不被词干提取。
stop StopFilter 从分词流中移除停用词。
synonym 不适用 为分析过程提供同义词列表。同义词列表通过配置文件提供。
synonym_graph 不适用 为分析过程提供同义词列表,包括多词同义词。
trim(修剪) TrimFilter 从流中的每个词元中修剪前导和尾随的空白字符。
truncate TruncateTokenFilter 截断长度超出指定字符限制的词元。
unique 不适用 通过从流中移除重复的词元来确保每个词元都是唯一的。
uppercase UpperCaseFilter 将词元转换为大写。
word_delimiter WordDelimiterFilter 根据指定的规则,在非字母数字字符处分割词元并执行规范化。
word_delimiter_graph WordDelimiterGraphFilter 根据指定的规则,在非字母数字字符处分割词元并执行规范化。为多位置词元分配一个 positionLength 属性。
剩余 350 字符

有问题?

想要贡献?