3.3.5.补充1:Token Filters(词语过滤器)

KStem Token Filter(KStem 词元过滤器)

kstem词元过滤器是用于英语的高性能过滤器。 所有词必须已经小写(使用lowercase过滤器)才能使此过滤器正常工作。

Snowball Token Filter(Snowball 词元过滤器)

一个过滤器,使用 Snowball-generated的分词器来分词。language参数使用以下可用值控制分词器:Armenian, Basque, Catalan, Danish, Dutch, English, Finnish, French, German, German2, Hungarian, Italian, Kp, Lithuanian, Lovins, Norwegian, Porter, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish.

例如:

PUT /my_index
{
    "settings": {
        "analysis" : {
            "analyzer" : {
                "my_analyzer" : {
                    "tokenizer" : "standard",
                    "filter" : ["standard", "lowercase", "my_snow"]
                }
            },
            "filter" : {
                "my_snow" : {
                    "type" : "snowball",
                    "language" : "Lovins"
                }
            }
        }
    }
}

Phonetic Token Filter(Phonetic 词元过滤器)

phonetic (语音)词元过滤器作为analysis-phonetic 插件提供。

Synonym Token Filter(Synonym 词元过滤器)

synonym(同义词)词元过滤器允许在分析过程中轻松处理同义词。 同义词使用配置文件配置。示例如下:

以上配置一个 synonym(同义词)过滤器,其中包含一个路径analysis/synonym.txt(相对于 config的位置)。 然后使用过滤器配置synonym同义词分析器。 其他设置有:ignore_case(默认为false),和expand(默认为true)。

tokenizer参数控制将用于标记同义词的分词器,并且默认为whitespace 分词器。

支持两种同义词格式:Solr,WordNet

Solr synonyms

以下是文件的示例格式:

您也可以在配置文件中直接给过滤器定义同义词(请注意使用synonyms而不是synonyms_path):

但是,建议使用synonyms_path 在文件中定义大型同义词集,因为内联指定会不必要地增加群集大小。

WordNet synonyms

基于 WordNet 格式的 同义词 可以如下使用格式声明:

同时支持使用synonyms_path在文本中定义 WordNet synonyms

Synonym Graph Token Filter(Synonym Graph 词元过滤器)

警告:此功能是实验性的,可能会在将来的版本中完全更改或删除。 Elastic 将采取最大的努力来解决任何问题,但实验功能不受SLA官方功能的支持。

synonym_graph词元过滤器允许在分析过程中轻松处理同义词,包括多字同义词。

为了正确处理多字同义词,该词元过滤器在处理过程中创建 “graph token stream”。 有关此主题及其各种复杂性的更多信息,请阅读Lucene’s TokenStreams are actually graphs 博客文章。

提示:该词元过滤器被设计为仅用作搜索分析器的一部分。 如果要在索引期间应用同义词,请使用标准synonym token filter

同义词使用配置文件配置。 这是一个例子:

以上配置一个 search_synonyms(同义词)过滤器,其中包含一个路径 analysis/synonym.txt(相对于 config 的位置)。 然后使用过滤器配置 search_synonyms同义词分析器。 其他设置有:ignore_case(默认为 false),和 expand(默认为 true)。

tokenizer 参数控制将用于标记同义词的分词器,并且默认为 whitespace 分词器。

支持两种同义词格式:Solr,WordNet

Solr synonyms

以下是文件的示例格式:

您也可以在配置文件中直接给过滤器定义同义词(请注意使用 synonyms而不是 synonyms_path):

但是,建议使用 synonyms_path 在文件中定义大型同义词集,因为内联指定会不必要地增加群集大小。

WordNet synonyms

基于 WordNet 格式的 同义词 可以如下使用格式声明:

同时支持使用 synonyms_path在文本中定义 WordNet synonyms

Compound Word Token Filter(复合词过滤器)

简述

hyphenation_decompounderdictionary_decompounder过滤器可以将许多德语中的复合词进行拆分。

两个过滤器都需要单词字典,可以按如下方式提供:

word_list

或一系列字,在令牌过滤器配置中内联指定

word_list_path

UTF-8编码文件的路径(绝对或相对于config目录),每行包含一个字。

Hyphenation decompounder(连词分解)

hyphenation_decompounder使用连字符语法来查找潜在的字词,然后对单词字典进行检查。输出的token质量与您使用的语法文件的质量直接相关。对于像德语这样的语言是非常适用的。

基于XML的连字符语法文件可以在“ 对象格式化对象 (OFFO)Sourceforge”项目中找到。目前仅支持FOP v1.2兼容连字符文件。您可以直接下载offo-hyphenation_v1.2.zip并查看offo-hyphenation/hyph/目录。想了解更多可以去查看Apache FOP项目。

Dictionary decompounder(字典分解)

dictionary_decompounder使用强力方法与仅字典字典结合使用复合词中的子词。它比连字符分解器慢得多,但可以作为检验字典质量的第一步。

Compound token filter parameters(复合词元过滤器参数)

以下参数可用于配置复合词元过滤器:

type

任何一个dictionary_decompounder或者是hyphenation_decompounder

word_list

包含用于单词字典的单词列表的数组。

word_list_path

单词字典的路径(绝对或相对于config目录)。

hyphenation_patterns_path

FOP XML连字符模式文件的路径(绝对或相对于config目录)。(当连词分解时需要配置)

min_word_size

最小字大小。默认为5。

min_subword_size

最小子字大小。默认为2。

max_subword_size

最大字大小。默认为15。

only_longest_match

是否只包括最长的匹配子字。默认为false

如下例所示:

Reverse Token Filter(反向词元过滤器)

简述

reverse类型的词元过滤器,简单地反转每个词元。

Elision Token Filter(Elision词元过滤器)

简述

此过滤器可以过滤省略元音。如,"l’avion" (the plane) 将会被过滤成 "avion" (plane)。

支持articles参数,其值为一组stop words(停止词,没有实际含义可忽略的词)。如下例所示:

Truncate Token Filter(截断词元过滤器)

简述

truncate词元过滤器可用于将token截短为特定长度。

它接受一个length参数,控制要截断的字符数,默认为10

Unique Token Filter(唯一词元过滤器)

简述

唯一词元过滤器用于在分析期间仅索引唯一的token。默认情况下,它应用于所有词元流。

如果only_on_same_position设置为true ,则只会删除相同位置上的重复token。

Last updated

Was this helpful?