词干提取器令牌过滤器编辑

为多种语言提供算法词干提取,其中一些语言还有其他变体。有关支持语言的列表,请参阅language 参数。

如果未自定义,则过滤器将使用porter 词干提取算法 处理英语。

示例编辑

以下分析 API 请求使用stemmer 过滤器的默认 porter 词干提取算法将the foxes jumping quickly 提取为the fox jump quickli

response = client.indices.analyze(
  body: {
    tokenizer: 'standard',
    filter: [
      'stemmer'
    ],
    text: 'the foxes jumping quickly'
  }
)
puts response
GET /_analyze
{
  "tokenizer": "standard",
  "filter": [ "stemmer" ],
  "text": "the foxes jumping quickly"
}

过滤器生成以下令牌

[ the, fox, jump, quickli ]

添加到分析器编辑

以下创建索引 API 请求使用stemmer 过滤器来配置新的自定义分析器

response = client.indices.create(
  index: 'my-index-000001',
  body: {
    settings: {
      analysis: {
        analyzer: {
          my_analyzer: {
            tokenizer: 'whitespace',
            filter: [
              'stemmer'
            ]
          }
        }
      }
    }
  }
)
puts response
PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "whitespace",
          "filter": [ "stemmer" ]
        }
      }
    }
  }
}

可配置参数编辑

language

(可选,字符串) 用于提取令牌的依赖于语言的词干提取算法。如果同时指定此参数和name 参数,则使用language 参数参数。

language 的有效值

有效值按语言排序。默认为english。推荐的算法以粗体显示。

阿拉伯语
arabic
亚美尼亚语
armenian
巴斯克语
basque
孟加拉语
bengali
巴西葡萄牙语
brazilian
保加利亚语
bulgarian
加泰罗尼亚语
catalan
捷克语
czech
丹麦语
danish
荷兰语
dutch, dutch_kp
英语
english, light_english, lovins, minimal_english, porter2, possessive_english
爱沙尼亚语
estonian
芬兰语
finnish, light_finnish
法语
light_french, french, minimal_french
加利西亚语
galician, minimal_galician (仅复数步骤)
德语
light_german, german, german2, minimal_german
希腊语
greek
印地语
hindi
匈牙利语
hungarian, light_hungarian
印度尼西亚语
indonesian
爱尔兰语
irish
意大利语
light_italian, italian
库尔德语(索拉尼语)
sorani
拉脱维亚语
latvian
立陶宛语
lithuanian
挪威语(博克马尔语)
norwegian, light_norwegian, minimal_norwegian
挪威语(新挪威语)
light_nynorsk, minimal_nynorsk
波斯语
persian
葡萄牙语
light_portuguese, minimal_portuguese, portuguese, portuguese_rslp
罗马尼亚语
romanian
俄语
russian, light_russian
塞尔维亚语
serbian
西班牙语
light_spanish, spanish spanish_plural
瑞典语
swedish, light_swedish
土耳其语
turkish
name
language 参数的别名。如果同时指定此参数和language 参数,则使用language 参数参数。

自定义编辑

要自定义stemmer 过滤器,请复制它以创建新自定义令牌过滤器的基础。您可以使用其可配置参数修改过滤器。

例如,以下请求创建了一个自定义stemmer 过滤器,该过滤器使用light_german 算法提取单词

response = client.indices.create(
  index: 'my-index-000001',
  body: {
    settings: {
      analysis: {
        analyzer: {
          my_analyzer: {
            tokenizer: 'standard',
            filter: [
              'lowercase',
              'my_stemmer'
            ]
          }
        },
        filter: {
          my_stemmer: {
            type: 'stemmer',
            language: 'light_german'
          }
        }
      }
    }
  }
)
puts response
PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "my_stemmer"
          ]
        }
      },
      "filter": {
        "my_stemmer": {
          "type": "stemmer",
          "language": "light_german"
        }
      }
    }
  }
}