是否有 elasticsearch 的词干分析器可以将 "broken" 更改为 "break"

Is there a stemmer for elasticsearch that can change "broken" to "break"

以下是我希望词干分析器执行的操作: 破:破 破:破 破:破 进入:进入 进入:进入 输入:输入

我对该字段进行了如下索引: "body":{ "type": "text", "fields":{ "stemmed":{ "type": "text", "analyzer": "english" } } }

当我查询“闯入”时,可以看到在body.stemmed字段中搜索的是:"break and enter"。看起来不错。 但是,当我查询“打破并进入”时,我得到:“打破并进入”。因此,显然,当使用 "english" 词干分析器时,“broke”不会变成“break”。 同样,“破门而入”变成:“破门而入”。因此,ES 显然不会将“broke”或“broken”更改为“break”(据此:snowball,我想解释了为什么使用它)。

那么,有没有一种方法可以指定 "known" 词干分析器来完成我想要做的事情?

Dictionary Stemmer 可以满足您的要求,它可以在字典中查找词干。算法词干分析器在不了解词根的情况下提取词干,它们只是通过算法来完成。 看看 Hunspell 词干分析器,认为它可以完成这项工作: https://www.elastic.co/guide/en/elasticsearch/guide/current/hunspell.html