Elasticsearch 复合词

Elasticsearch Compounded Words

我们正在使用 elasticsearch,每种语言都有单独的索引。

这是我们的德语分析器配置:

settings:
    index:
        analysis:
            filter:
                nGramFilter:
                    type: nGram
                    min_gram: 2
                    max_gram: 4
            analyzer:
                de_analyzer:
                    tokenizer: standard
                    filter: [standard, lowercase, "nGramFilter"]

但是,如果我搜索 "apfel"(苹果),它还会找到 "Apfelsine",这不是苹果。如果我搜索 "wein"(酒),它也会找到 "Schweinshaxe",这是不正确的。

我们也尝试了edgeNGram Filter,但它也不符合我们的需求。

有没有人有实现这个的想法?

@Udan 这个插件很有魅力。我们将在生产环境中使用它。非常感谢。