Les moteurs de recherches : Elasticsearch

Comment fonctionne un moteur de recherche ?

Il y a plein de choses qu’on utilise au quotidien sans savoir comment elles fonctionnent. Par exemple, vous êtes-vous déjà demandé comment fonctionnait un tube de dentifrice pour que le dentifrice sorte avec cette forme ? Oui c’est totalement hors sujet mais c’est hyper intéressant… Les technologies que nous utilisons au quotidien sont tellement bien pensée qu’il est inutile à présent de savoir comment elles marchent.

Typiquement, les moteurs de recherche que nous avons tous déjà utilisés. Nous nous en servons tous, mais comment fonctionnent-ils ? Comment savent-ils que les résultats qu’ils vont me donner seront pertinents même lorsque je fais des fautes d’orthographe ? Et surtout, comment ils hiérarchisent ces résultats ? Vous l’aurez compris, nous allons essayer de vous l’expliquer et pour cela, nous allons nous servir d’une technologie qu’on utilise chez Vigicorp : l’Elasticsearch.

Comment fonctionne un moteur de recherche ?

Un moteur de recherche est une technologie qui va faciliter votre accès à une information. Vous tapez des mots pour expliquer ce que vous voulez trouver dans une barre de recherche et en fonction du moteur vous verrez apparaître des résultats correspondants en temps réel ou une fois que vous l’avez validé. Cependant, tout ça n’est pas magique.  Pour qu’une requête corresponde à un résultat, il faut que j’indexe mon contenu, c’est-à-dire que je le répertorie et que je le classe.

L’indexation du contenu

Cette étape est primordiale, car c’est elle qui va déterminer la qualité de votre moteur de recherche. Un contenu bien indexé facilite votre recherche d’informations.

Pour des espèces animales par exemple, je peux indexer mon contenu de cette manière :

  • Animal
    • Chien
      • Chien Berger
        • Berger Allemand
        • Berger Australien
      • Golden
    • Félin
      • Tigre
      • Chat
        • Chat siamois

Une fois que c’est fait, mon moteur de recherche aura la capacité de faire remonter des résultats de requêtes en fonction de la pertinence de mots-clés.

Elasticsearch : la recherche de données

Elasticsearch est une base de données NoSQL. Sa grande force est de pouvoir indexer un grand nombre de documents textuels (description de films, catalogue de produits, ect). Il est basé sur Lucene, un moteur de recherche open source qui s’occupe d’indexer le contenu automatiquement et qu’on peut paramétrer pour optimiser le processus de recherche.

Pour un catalogue de films, on peut suivre le modèle suivant pour optimiser la recherche :

  • Un mot qui apparaît dans le titre aura une valeur de 3 points.
  • Un mot qui apparaît dans le sous-titre aura une valeur de 2 points.
  • Un mot qui apparaît dans la description aura une valeur de 1 point.

Donc si je recherche dans ma base de données de film : « anneau », je vais en principe retrouver la trilogie du Seigneur des anneaux. Pour déterminer leur pertinence, je vais calculer leur score en fonction de la pertinence du mot « anneau ».

 

123
Titre = 3 pointsLe seigneur des anneauxLe seigneur des anneauxLe seigneur des anneaux
Sous-titre = 2 pointsLa communauté de l’anneauLes deux toursLe retour du roi
Description = 1 pointUn jeune et timide `Hobbit’, Frodon Sacquet, hérite d’un anneau magique. Bien loin d’être une simple babiole, il s’agit d’un instrument de pouvoir absolu qui permettrait à Sauron, le `Seigneur des ténèbres’, de régner sur la `Terre du Milieu’ et de réduire en esclavage ses peuples. Frodon doit parvenir jusqu’à la `Crevasse du Destin’ pour détruire l’anneau.

 

Après la mort de Boromir et la disparition de Gandalf, la `Communauté’ s’est scindée en trois. Perdus dans les collines d’`Emyn Muil’, Frodon et Sam découvrent qu’ils sont suivis par Gollum, une créature versatile corrompue par l’anneau magique. Gollum promet de conduire les `Hobbits’ jusqu’à la `Porte Noire’ du `Mordor’. A travers la `Terre du Milieu’, Aragorn, Legolas et Gimli font route vers le `Rohan’, le royaume assiégé de Theoden.

 

Les armées de Sauron ont attaqué `Minas Tirith’, la capitale de `Gondor’. Jamais ce royaume autrefois puissant n’a eu autant besoin de son roi. Cependant, Aragorn trouvera-t-il en lui la volonté d’accomplir sa destinée ? Tandis que Gandalf s’efforce de soutenir les forces brisées de Gondor, Théoden exhorte les guerriers de Rohan à se joindre au combat. Cependant, malgré leur courage et leur loyauté, les forces des Hommes ne sont pas de taille à lutter contre les innombrables légions d’ennemis.

 

Score743

Le résultat qui va apparaître en premier va être le premier car son score élevé montre qu’il est plus pertinent pour répondre à la requête.

Utiliser un moteur de recherche pour votre site internet

« Vous ne pouvez pas vendre un produit que vos clients ne peuvent pas trouver ». Un bon moteur de recherche sur un site web va améliorer l’expérience utilisateur de vos clients, car il va faciliter leur recherche d’informations. Pour une boutique en ligne, par exemple Elasticsearch va vous permettre d’indexer vos produits actuels et tous vos futurs produits automatiquement. Son système de recherche dynamique va adapter les résultats de recherche en temps réel en fonction de leur pertinence.

C’est essentiel pour une boutique en ligne sur laquelle un tiers des visiteurs utilisent la recherche pour trouver une information. Un utilisateur qui sait ce qu’il cherche n’a pas le temps de surfer sur votre site pour en comprendre le fonctionnement. Pour comprendre que s’il veut une chambre à air pour son vélo, il doit aller dans la catégorie sport > cyclisme > accessoires > chambre à air.

Ce qu’il faut, c’est lui faciliter la tâche au maximum et Elasticsearch est un bon moyen pour le faire.

 

 

 

 

 

Vigiboy