Autres versions
Vous êtes ici : Guides thématiques → Moteur de recherche
Fonctionnement général du moteur
Présentation des mécanismes de recherche
Cet article présente le fonctionnement du moteur de recherche Elasticsearch tel qu'il a été implémenté sur K-Sup : calcul de la pertinence, présentation des résultats, auto-complétion.
Indexation des contenus
Les contenus saisis dans l'application sont indexés dans le serveur Elasticsearch de différentes manières :
- au fil de l'eau lors de l'enregistrement de la données (fiche, rubrique, libellé...).
- lors de l'exécution du script Indexation complète des contenus. Au démarrage du traitement l'ensemble des données présentes dans le serveur Elasticsearch sont supprimées.
Construction de la requête et calcul de la pertinence
Afin de fournir un moteur de recherche le plus pertinent possible, la recherche dans les contenus de l'application est réalisée en plusieurs requêtes. Chaque requête participe à la pertinence globale avec un poids différents, afin de privilégier en priorité les résultats les plus pertinents :- Recherche des termes exacts en mode "phrase", c'est-à-dire avec prise en compte de l’espacement entre les mots. Attention tous les mots recherchés doivent être présents dans le champ.
- Recherche sur les termes exacts uniquement. Les mots recherchés peuvent être répartis sur plusieurs champs.
- En mode "phrase", recherche par analyse des mots : découpage des mots, analyse linguistique (certains mots de liaison sont ignorés, la terminaison de certains mots est ignorée, recherche de synonymes, etc...), conversion de données (dates, nombres...). L'ensemble des mots recherchés doit être présent dans le même champ.
- Recherche par analyse des mots uniquement.
- Recherche sur des parties de mots (recherche sur "licence pro" pour faire remonter licence professionnelle).
Le calcul de la pertinence d'un résultat lors de la recherche d'un terme est réalisé de la manière suivante par le serveur Elasticsearch :
- Fréquence du terme. Plus le terme t est présent dans un document plus il est pertinent.
- La fréquence du terme dans tous les documents. Si le terme est présent un grand nombre de fois dans l'ensemble des documents, alors le terme n'est pas considéré comme pertinent (exemple pour les articles : mais, où ...).
- Rapport entre la taille du terme et la taille du champ. La chaîne trouvée dans un champ court (title) a plus de poids que dans un champ long (description).
- Le "boost" configuré sur le champs ou sur le type de document (voir notre article détaillé pour plus d'informations).
Tri des résultats
Lorsqu'aucun mot-clé n'est renseigné, les résultats sont présentés par date de modification décroissante.Dès qu'un mot-clé est renseigné (cas le plus fréquent), le tri par pertinence est utilisé.
Affichage des résultats
L'affichage par défaut des résultats comporte :- Le titre de la fiche, avec un lien sur le titre pour accéder au contenu
- Le type de contenu et la date de dernière modification
Auto-complétion
Le moteur de recherche intègre par défaut un affichage de suggestions de résultats au moment de la saisie du mot-clé dans le champ de recherche. Les suggestions proposées correspondent au libellé des contenus trouvés.La requête utilisée pour remonter ces suggestions de résultats utilise uniquement une recherche de type phrase avec les termes analysés. De plus, seuls les champs constituant le libellé sont pris en compte.
Mis à jour le 14 juin 2019