我在elasticsearch中实现了轻度英语词干分析。我可以添加一个自定义的词干覆盖,例如“guitarist”=>“guitar”,但是我想添加这个作为一个一般规则,这样“guitarist”=>“guitar”,“violinist=>小提琴”等等。不使用regex我能做到这一点吗?
tnkciper1#
对于任何研究类似问题的人来说,regex似乎是唯一的解决方案。下面的例子专门针对以“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" } } } }
可以在模式中添加排除项,例如,下面将忽略“mist”和“twist”这两个词,但这仅适用于(非常)有限的排除项。
"pattern": "^(?!m|tw)(.*)ist$"
1条答案
按热度按时间tnkciper1#
对于任何研究类似问题的人来说,regex似乎是唯一的解决方案。下面的例子专门针对以“ist”结尾的单词。
可以在模式中添加排除项,例如,下面将忽略“mist”和“twist”这两个词,但这仅适用于(非常)有限的排除项。