词干提取器 Token 过滤器
stemmer token 过滤器将单词还原为其根形式或基本形式(也称为其词干)。
参数
stemmer token 过滤器可以使用接受以下值的 language 参数进行配置
- 阿拉伯语:
arabic - 亚美尼亚语:
armenian - 巴斯克语:
basque - 孟加拉语:
bengali - 巴西葡萄牙语:
brazilian - 保加利亚语:
bulgarian - 加泰罗尼亚语:
catalan - 捷克语:
czech - 丹麦语:
danish - 荷兰语:
dutch, dutch_kp - 英语:
english(默认),light_english,lovins,minimal_english,porter2,possessive_english - 爱沙尼亚语:
estonian - 芬兰语:
finnish,light_finnish - 法语:
light_french,french,minimal_french - 加利西亚语:
galician,minimal_galician(仅复数步骤) - 德语:
light_german,german,german2,minimal_german - 希腊语:
greek - 印地语:
hindi - 匈牙利语:
hungarian, light_hungarian - 印尼语:
indonesian - 爱尔兰语:
irish - 意大利语:
light_italian, italian - 库尔德语(索拉尼):
sorani - 拉脱维亚语:
latvian - 立陶宛语:
lithuanian - 挪威语(书面挪威语):
norwegian,light_norwegian,minimal_norwegian - 挪威语(新挪威语):
light_nynorsk,minimal_nynorsk - 葡萄牙语:
light_portuguese,minimal_portuguese,portuguese,portuguese_rslp - 罗马尼亚语:
romanian - 俄语:
russian,light_russian - 西班牙语:
light_spanish,spanish - 瑞典语:
swedish,light_swedish - 土耳其语:
turkish
您还可以使用 name 参数作为 language 参数的别名。如果两者都设置,则 name 参数将被忽略。
示例
以下示例请求创建一个名为 my-stemmer-index 的新索引,并配置一个带有 stemmer 过滤器的分析器
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
}
]
}