Aller au contenu

Optimisation de la recherche avec Maarch Digital Flow

Choix du stemmer lors du déploiement

Un stemmer est un composant qui, au moment de l’indexation, réduit les mots à leur racine afin de faire correspondre différentes formes d’un même terme dans la recherche.

Par défaut, Maarch Digital Flow est paramétré pour utiliser le stemmer "light_french".

Il est possible lors du déploiement, de spécifier un stemmer différent.

Si les données ont déjà fait l'objet d'une indexation, il est nécessaire de procéder à une nouvelle indexation.

Ainsi, si l'objectif est la précision, le stemmer minimal_french applique une racinisation beaucoup plus conservatrice que light_french.

Exemple :

  • voirievoir avec light_french
  • voirievoiri avec minimal_french

Cela évite certains rapprochements artificiels entre des termes ayant une racine commune mais des significations différentes.

Bénéfices

  • Réduction du bruit dans les résultats
  • Moins de faux positifs
  • Meilleure pertinence métier
  • Recherche plus précise sur des termes techniques, juridiques ou administratifs

Risques / limites

Cette précision accrue réduit aussi la tolérance linguistique :

  • certaines conjugaisons ne correspondent plus automatiquement ;

  • certaines variantes grammaticales peuvent ne plus être retrouvées ;

  • l’utilisateur doit formuler une recherche plus proche du terme réellement indexé.

Paramétrage à chaud de la tolérance aux erreurs (fuzziness)

Permet de retrouver des résultats même lorsque la recherche contient des fautes de frappe ou de petites différences orthographiques Utilise la distance de Levenshtein, c’est-à-dire le nombre minimal de modifications nécessaires pour transformer un mot en un autre.

Un nouveau paramètre de l’application permet de contrôler la façon dont le moteur de recherche s’adapte aux erreurs de saisie de l’utilisateur.

Paramètres > Recherche : Tolérance aux erreurs

Ce paramétrage peut se faire “à chaud” et ne nécessite pas de réindexation.

Paramétrage par défaut :

{
  "filter": "AUTO:4,15",
  "search": "AUTO:4,15"
}
  • AUTO : Elasticsearch adapte automatiquement le nombre de modifications autorisées (insertion, suppression ou substitution de caractères) en fonction de la longueur du terme recherché.

  • 4,15 : personnalise les seuils de cette adaptation :

  • moins de 4 caractères : aucune faute autorisée (0) ;

  • de 4 à 15 caractères : 1 modification autorisée ;
  • plus de 15 caractères : 2 modifications autorisées.

Ce paramétrage améliore la pertinence des résultats en limitant les correspondances approximatives sur les mots courts, tout en conservant une tolérance raisonnable aux erreurs de saisie sur les mots plus longs.

Point fort

La fonctionnalité permet désormais de distinguer :

  • la recherche plein texte ;
  • le filtrage de listes.

Le paramétrage permettant de désactiver la tolérance aux erreurs :

{
  "filter": "AUTO:4,15",
  "search": "0"
}

Ceci désactive totalement la tolérance aux erreurs sur les recherches plein texte tout en conservant une tolérance contrôlée dans les filtres.

Bénéfices

  • Forte réduction des résultats approximatifs
  • Suppression de certains rapprochements orthographiques incohérents
  • Comportement plus prévisible du moteur
  • Conservation d’une souplesse minimale dans les filtres

Risques / limites

La désactivation de la fuzziness réduit la capacité du moteur à corriger :

  • fautes de frappe ;
  • inversions de caractères ;
  • erreurs de saisie utilisateur.

Exemple :

  • elsticsearch ne retrouvera plus elasticsearch ;

  • Une faute dans une référence ou un identifiant peut empêcher tout résultat.