Search code examples
symfonyelasticsearchelastica

Elasticsearch Compounded Words


we're using elasticsearch with seperate index for each language.

This is our config for german analyzer:

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

However, if I search for "apfel" (apple), it also finds "Apfelsine", which is not an apple. If I search for "wein" (wine), it also finds "Schweinshaxe", which is not correct.

We also tried the edgeNGram Filter, but it also doesn't fit our needs.

Has anyone an idea to accomplish this?


Solution

  • @Udan The plugin works like a charm. We'll use this in production env. Thanks very much.