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