词干提取词元过滤器

词干提取词元过滤器 #

词干提取(stemmer)词元过滤器会将单词缩减为其词根或基本形式(也称为词干stem)。

参数说明 #

词干提取词元过滤器可以通过一个 language(语言)参数进行配置,该参数接受以下值:

  • 阿拉伯语arabic
  • 亚美尼亚语armenian
  • 巴斯克语basque
  • 孟加拉语bengali
  • 巴西葡萄牙语brazilian
  • 保加利亚语bulgarian
  • 加泰罗尼亚语catalan
  • 捷克语czech
  • 丹麦语danish
  • 荷兰语dutchdutch_kp
  • 英语english(默认)、light_englishlovinsminimal_englishporter2possessive_english
  • 爱沙尼亚语estonian
  • 芬兰语finnishlight_finnish
  • 法语light_frenchfrenchminimal_french
  • 加利西亚语galicianminimal_galician(仅复数处理步骤)
  • 德语light_germangermangerman2minimal_german
  • 希腊语greek
  • 印地语hindi
  • 匈牙利语hungarianlight_hungarian
  • 印尼语indonesian
  • 爱尔兰语irish
  • 意大利语light_italianitalian
  • 库尔德语(索拉尼方言)sorani
  • 拉脱维亚语latvian
  • 立陶宛语lithuanian
  • 挪威语(书面挪威语)norwegianlight_norwegianminimal_norwegian
  • 挪威语(新挪威语)light_nynorskminimal_nynorsk
  • 葡萄牙语light_portugueseminimal_portugueseportugueseportuguese_rslp
  • 罗马尼亚语romanian
  • 俄语russianlight_russian
  • 西班牙语light_spanishspanish
  • 瑞典语swedishlight_swedish
  • 土耳其语turkish

你也可以使用 name 参数作为 language 参数的别名。如果两个参数都被设置,name 参数将被忽略。

参考样例 #

以下示例请求创建了一个名为 my-stemmer-index 的新索引,并配置了一个带有词干提取过滤器的分词器。

PUT /my-stemmer-index
{
  "settings": {
    "analysis": {
      "filter": {
        "my_english_stemmer": {
          "type": "stemmer",
          "language": "english"
        }
      },
      "analyzer": {
        "my_stemmer_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "my_english_stemmer"
          ]
        }
      }
    }
  }
}

产生的词元 #

使用以下请求来检查使用该分词器生成的词元:

GET /my-stemmer-index/_analyze
{
  "analyzer": "my_stemmer_analyzer",
  "text": "running runs"
}

返回内容包含产生的词元

{
  "tokens": [
    {
      "token": "run",
      "start_offset": 0,
      "end_offset": 7,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "run",
      "start_offset": 8,
      "end_offset": 12,
      "type": "<ALPHANUM>",
      "position": 1
    }
  ]
}