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