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
}
]
}