Recherche partielle d'un mot

Bonjour,

J'ai un document ayant pour titre "Quelle garantie choisir pour votre maison ?".

Lors d'une recherche avec les mots "garantie", "garanti", tout fonctionne correctement mais avec la recherche "garant", plus rien n'est trouvé.

Le stemmer french marche donc correctement. Je voudrais éviter de mettre en place un ngram (trop gourmand et ne va pas correspondre aux attentes).

Auriez-vous une idée ?

Voici la config:

            settings:
                index: &default_index
                    number_of_shards: 1
                    number_of_replicas: 0
                    refresh_interval: 60s
                    analysis:
                        analyzer:
                            heavy:
                                tokenizer: icu_tokenizer
                                filter: [ icu_folding, elision, synonyms, stemmer ]
                                char_filter: html_strip
                            light:
                                tokenizer: icu_tokenizer
                                filter: [ icu_folding, elision ]
                                char_filter: html_strip
                            suggest_analyzer:
                                tokenizer: icu_tokenizer
                                filter: [ lowercase, shingle_filter ]
                            autocomplete_analyzer:
                                tokenizer: icu_tokenizer
                                filter: [ asciifolding, lowercase, elision, synonyms ]
                            folding_analyzer:
                                tokenizer: icu_tokenizer
                                filter: [ lowercase, asciifolding ]
                        filter:
                            elision:
                                type: elision
                                articles_case: true
                                articles: [ l, m, t, qu, n, s, j, d, c, jusqu, quoiqu, lorsqu, puisqu ]
                            stemmer:
                                type: stemmer
                                language: french
                            synonyms:
                                type: synonym_graph
                                ignore_case: true
                                synonyms_path: '%elasticsearch_synonyms_path%'
                                lenient: true
                            # index phrases with 2 and 4 words
                            shingle_filter:
                                type: shingle
                                min_shingle_size: 2
                                max_shingle_size: 4
                        normalizer:
                            keyword_normalizer:
                                type: custom
                                filter: [ asciifolding ]
            types:
                document:
                    dynamic: false
                    indexable_callback: 'isIndexableInElasticsearch'
                    properties:
                        id: &default_id
                        title: &default_title
                            type: text
                            analyzer: light
                            fields:
                                stemmed:
                                    type: text
                                    analyzer: heavy

Le edge ngram serait utile pourtant dans ce cas.
Ou sinon des synonymes mais il faut que tu maintiennes le dictionnaire à jour.

Sinon, as-tu essayé le snowball token filter?

les synonym token.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.