Link Search Menu Expand Document Documentation Menu

Snowball 词元过滤器

snowball 词元过滤器是基于 Snowball 算法的词干提取过滤器。它支持多种语言,并且比 Porter 词干提取算法更高效、更准确。

参数

snowball 词元过滤器可以通过 language 参数进行配置,该参数接受以下值:

  • 阿拉伯语
  • 亚美尼亚语
  • 巴斯克语
  • 加泰罗尼亚语
  • 丹麦语
  • 荷兰语
  • English (默认)
  • 爱沙尼亚语
  • 芬兰语
  • 法语
  • 德语
  • German2
  • 匈牙利语
  • 意大利语
  • 爱尔兰语
  • Kp
  • 立陶宛语
  • Lovins
  • 挪威语
  • Porter
  • 葡萄牙语
  • 罗马尼亚语
  • 俄语
  • 西班牙语
  • 瑞典语
  • 土耳其语

示例

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

PUT /my-snowball-index
{
  "settings": {
    "analysis": {
      "filter": {
        "my_snowball_filter": {
          "type": "snowball",
          "language": "English"
        }
      },
      "analyzer": {
        "my_snowball_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "my_snowball_filter"
          ]
        }
      }
    }
  }
}

生成的词元

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

GET /my-snowball-index/_analyze
{
  "analyzer": "my_snowball_analyzer",
  "text": "running runners"
}

响应包含生成的词元

{
  "tokens": [
    {
      "token": "run",
      "start_offset": 0,
      "end_offset": 7,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "runner",
      "start_offset": 8,
      "end_offset": 15,
      "type": "<ALPHANUM>",
      "position": 1
    }
  ]
}
剩余 350 字符

有问题?

想要贡献?