雪球算法词元过滤器 #
雪球算法(snowball
)词元过滤器是一种基于
雪球算法的词干提取过滤器。它支持多种语言,并且比波特词干提取算法更加高效和准确。
参数说明 #
雪球词元过滤器可以通过一个 language
(语言)参数进行配置,该参数接受以下值:
- 阿拉伯语(
Arabic
) - 亚美尼亚语(
Armenian
) - 巴斯克语(
Basque
) - 加泰罗尼亚语(
Catalan
) - 丹麦语(
Danish
) - 荷兰语(
Dutch
) - 英语(
English
,默认值) - 爱沙尼亚语(
Estonian
) - 芬兰语(
Finnish
) - 法语(
French
) - 德语(
German
) - 德语 2(
German2
) - 匈牙利语(
Hungarian
) - 意大利语(
Italian
) - 爱尔兰语(
Irish
) Kp
- 立陶宛语(
Lithuanian
) - 洛文斯(
Lovins
) - 挪威语(
Norwegian
) - 波特(
Porter
) - 葡萄牙语(
Portuguese
) - 罗马尼亚语(
Romanian
) - 俄语(
Russian
) - 西班牙语(
Spanish
) - 瑞典语(
Swedish
) - 土耳其语(
Turkish
)
参考样例 #
以下示例请求创建了一个名为 my-snowball-index
的新索引,并配置了一个带有雪球过滤器的分词器。
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
}
]
}