Link Search Menu Expand Document Documentation Menu

KStem 令牌过滤器

kstem 令牌过滤器是一种词干提取过滤器,用于将单词简化为其词根形式。该过滤器是一种轻量级算法词干提取器,专为英语设计,执行以下词干提取操作:

  • 将复数形式简化为单数形式。
  • 将不同的动词时态转换为其基本形式。
  • 删除常见的派生词尾,例如“‑ing”或“‑ed”。

kstem 令牌过滤器等同于配置了 light_english 语言的 stemmer 过滤器。与其他词干提取过滤器(如 porter_stem)相比,它提供更保守的词干提取。

kstem 令牌过滤器基于 Lucene KStemFilter。更多信息请参阅 Lucene 文档

示例

以下示例请求创建了一个名为 my_kstem_index 的新索引,并配置了一个带有 kstem 过滤器的分析器:

PUT /my_kstem_index
{
  "settings": {
    "analysis": {
      "filter": {
        "kstem_filter": {
          "type": "kstem"
        }
      },
      "analyzer": {
        "my_kstem_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "kstem_filter"
          ]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "my_kstem_analyzer"
      }
    }
  }
}

生成的词元

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

POST /my_kstem_index/_analyze
{
  "analyzer": "my_kstem_analyzer",
  "text": "stops stopped"
}

响应包含生成的词元

{
  "tokens": [
    {
      "token": "stop",
      "start_offset": 0,
      "end_offset": 5,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "stop",
      "start_offset": 6,
      "end_offset": 13,
      "type": "<ALPHANUM>",
      "position": 1
    }
  ]
}
剩余 350 字符

有问题?

想要贡献?