我已经在Elasticsearch中实现了简单的英语词干。
例如,我可以添加自定义词干替代,以便“ Guitarist” =>“吉他”,但我想将此添加为一般规则,以便“ Guitarist” =>“ Guitar”, “小提琴手=>小提琴”等。
我可以不使用正则表达式来实现吗?
答案 0 :(得分:0)
对于任何遇到类似问题的人来说,正则表达式似乎是唯一的解决方案。以下示例专门针对以“ ist”结尾的单词。
{
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"char_filter": [
"ist_filter"
],
"filter": [
"lowercase",
"my_stem"
]
}
},
"filter": {
"my_stem": {
"type": "stemmer",
"language": "light_english"
}
},
"char_filter": {
"ist_filter": {
"type": "pattern_replace",
"pattern": "(.*)ist$",
"replacement": "$1"
}
}
}
}
可以将排除项添加到模式中,例如下面将忽略“薄雾”和“扭曲”两个词,但这仅适用于(非常)有限的排除项。
"pattern": "^(?!m|tw)(.*)ist$"