Comment créer un moteur de recherche

elastic-de-142343-blogheader.V1_V1.jpg

Les moteurs de recherche font partie des éléments que l'on tient pour acquis. Dès que nous avons besoin de faire une recherche, quelle qu'elle soit, il nous suffit de taper un mot ou une expression dans un moteur de recherche, et celui-ci nous renvoie une liste des résultats correspondants. Ce nous paraissait "magique" à l'époque l'est probablement moins aujourd'hui, tant nous sommes habitués à faire ces recherches au quotidien. Pourtant, quiconque se souvient de l'époque d'Alta Vista devrait se rendre compte des performances exceptionnelles dont nous bénéficions à présent.

Lorsqu'on parle de "moteur de recherche", il est facile de se représenter des moteurs de recherche web populaires, comme Google ou, dans une certaine mesure, Bing. Mais la fonction des moteurs de recherche va bien au-delà de la simple recherche sur le web. Des applications populaires, comme Uber et Tinder, intègrent des moteurs de recherche puissants qui mettent en correspondance des utilisateurs avec des chauffeurs pour la première, ou avec des matchs pour la seconde, à l'aide de la géolocalisation et d'autres caractéristiques à partir de leur plateforme. Il en va de même pour les applications de streaming, les sites universitaires et même les intranets. En général, si vous regardez la barre de navigation de n'importe quel site web, vous verrez probablement une barre de recherche pour vous aider à trouver ce que vous recherchez sur ce site spécifique.

Le nombre de cas d'utilisation potentiels des moteurs de recherche est phénoménal, et c'est probablement pour cette raison que vous êtes en train de lire cet article. Vous êtes développeur et vous cherchez à créer votre premier moteur de recherche ? Le rôle de la recherche dans les expériences d'IA générative vous intéresse et vous souhaitez en savoir davantage ? Dans tous les cas, cet article est pour vous. Pour en faciliter la lecture, nous l'avons divisé en trois sections :

  • Définition d'un moteur de recherche et concepts

  • Création de votre propre moteur de recherche

  • Mise en place d'un moteur de recherche en toute simplicité avec Elastic®

À la fin de cet article, vous aurez toutes les connaissances nécessaires pour mettre en place votre premier moteur de recherche avec des serveurs web, l'ingestion de données et les index, le tout, avec l'aide de la plateforme de recherche d'Elastic.

Définition d'un moteur de recherche et concepts

Considérez un moteur de recherche comme un bibliothécaire qui est là pour vous aider à trouver les informations que vous recherchez. Vous l'informez du problème que vous essayez de résoudre ou de la question à laquelle vous souhaitez répondre, et le bibliothécaire vous redirigera vers les livres et les ressources qui devraient vous être utiles. Il ne tombera pas forcément juste à chaque fois, mais son aide sera bien plus efficace que si vous deviez chercher à l'aveugle par vous-même ce dont vous avez besoin.

Les moteurs de recherche sont constitués de quatre composants principaux : des serveurs web, l'ingestion des données, un index et la page de résultats. Avant de créer votre moteur de recherche, il est important de bien comprendre ce que chacun de ces éléments fait.

Serveurs web

Si le moteur de recherche est le bibliothécaire, les serveurs web sont la bibliothèque en tant que telle. C'est là que vous stockez toutes les données dont vous avez besoin pour renvoyer des résultats pertinents à l'utilisateur. Ces serveurs web sont généralement basés sur le cloud, en raison de la scalabilité, de l'accessibilité, de la sécurité et des performances qu'il offre. Dans le cas d'un moteur de recherche web, c'est là que se trouvent les pages HTML, les images, les vidéos et d'autres ressources des différents sites web. Dans le cas d'un réseau social, il s'agira des titres, des descriptions, des métadonnées et des autres informations nécessaires au contenu de cette plateforme.

Ingestion des données

Tout comme les bibliothèques classent et collectent différents livres, un moteur de recherche doit collecter des données à partir d'une source quelconque. C'est la raison pour laquelle l'ingestion de données joue un rôle essentiel dans la création d'un moteur de recherche. Pour les moteurs de recherche web, l'ingestion des données se fait à l'aide d'un robot d'indexation. Le robot d'indexation emploie des algorithmes sophistiqués pour scanner les sites web et identifier la nature du contenu et l'endroit auquel il se trouve.

Un autre type d'ingestion de données est l'intégration à d'autres services via une API. Les intégrations permettent de sélectionner la provenance des données, ce qui peut aider votre moteur de recherche à trouver plus facilement des données spécifiques. Par exemple, si vous créez un moteur de recherche pour des contenus vidéo, vous souhaiterez probablement qu'il renvoie des résultats de différents fournisseurs, comme YouTube, Netflix et Disney+.

De la même façon, vous pouvez utiliser des connecteurs pour apporter des informations venant d'une ou de plusieurs sources de données. Il s'agit souvent de modules prédéfinis ou d'extraits de code dont vous pouvez vous servir pour vous connecter à des bases de données, des applications ou des API spécifiques. Ils vous offrent une grande flexibilité, sans que vous ayez à élargir votre portée de manière importante.

Index

Tout comme dans une bibliothèque, vous avez besoin d'un index pour votre contenu. Sinon, vous serez incapable de savoir où se trouve tel ou tel élément. Un index organise et stocke les informations provenant de vos sources de données en veillant à ce qu'elles puissent être récupérées efficacement. Pour que votre moteur de recherche délivre de bonnes performances, il doit être capable d'identifier, de classer et de fournir le contenu rapidement.

Comme il y a de grandes choses que vous souhaitiez indexer de vastes volumes de données, cet index ne peut pas se contenter d'être une simple copie mot pour mot de la source. Il doit traiter le contenu et le décomposer en éléments clés, par exemple :

  • Mots clés : mots ou expressions se trouvant dans la page.

  • Plongements : vecteurs à plusieurs dimensions représentant les données du texte.

  • Métadonnées : titres, descriptions et autres données structurées intégrées dans la page.

  • Analyse du contenu : compréhension du sujet de la page, des entités et du sens général.

  • Liens retour : liens d'autres sites web pointant vers le contenu.

Pages de résultats du moteur de recherche

Enfin, la dernière pièce de ce puzzle est l'affichage des résultats de recherche à l'utilisateur. La page de résultats du moteur de recherche est l'aboutissement du dur labeur que vous avez effectué avec les serveurs, l'ingestion des données et l'index. Il s'agit d'une liste de résultats utiles dont l'utilisateur peut se servir.

La façon dont les résultats sont présentés varie d'un moteur de recherche à l'autre, mais il y aura probablement un titre, un lien, une description et une pagination quelconque des résultats. Il y aura peut-être des fonctions de recherche avancée, comme le filtrage ou la recherche à facettes, pour affiner les résultats facilement en fonction de paramètres courants. Dans tous les cas, le plus important est que les résultats soient affichés clairement pour que l'utilisateur puisse déterminer le choix le plus approprié et le plus pertinent.

La pertinence de la recherche joue un rôle important, car c'est grâce à elle que l'utilisateur vous fera confiance. Elle lui montrera que vous comprenez son intention et lui garantira qu'il est au bon endroit. C'est elle aussi qui le guidera vers l'information qu'il souhaite obtenir. C'est là la clé du succès pour obtenir fidélité et relation pérenne.

Création de votre propre moteur de recherche avec Elastic

Maintenant que nous avons vu les composants clés d'un moteur de recherche, retroussons-nous les manches et créons-en un. 

Pour commencer, déterminez l'échelle de votre moteur de recherche. Il peut être tentant de voir (trop) grand et de vouloir créer le nouveau Google. Or, pour crawler des milliards de pages web, il faut mettre en place une infrastructure colossale et disposer d'une puissance de calcul phénoménale, sans parler de la capacité qu'il faut avoir pour stocker toutes les données. 

Avant de vous lancer, déterminez aussi les connaissances et les compétences dont vous disposez. Plus vous maîtriserez la source de vos données, plus il sera facile d'en tirer parti pour votre moteur de recherche. De la même manière, privilégiez l'utilisation d'une suite technologique que vous connaissez. Si vous maîtrisez Python, il peut être bénéfique de l'utiliser pour créer votre moteur de recherche.

Étape 1 : Définir vos exigences de recherche

La première étape consiste à définir le problème que votre moteur de recherche va résoudre. Cette décision aura une influence sur tous les aspects de la création du moteur de recherche, depuis la ou les sources de données, jusqu'à l'indexation et la façon dont les résultats s'afficheront. Aussi, réfléchissez bien au profil des utilisateurs qui se serviront de votre moteur de recherche et posez-vous les questions suivantes :

  • Pourquoi les utilisateurs cherchent-ils ces informations ou ce contenu ?

  • De quelles informations avez-vous besoin pour décider si un élément est pertinent ou non ?

  • Comment déciderez-vous des résultats à privilégier par rapport à d'autres ?

  • Comment présenterez-vous les résultats pour qu'ils soient les plus utiles possible ?

Une fois que vous aurez répondu à ces questions, vous serez plus à même de prendre des décisions stratégiques tout au long de ce processus de création, depuis les sources de données à utiliser jusqu'au fait d'avoir (ou non) des images dans les pages de résultats. Plus ces réponses seront claires dans votre tête, mieux vous répondrez aux besoins et aux attentes des utilisateurs.

Étape 2 : Explorer le web pour collecter des données

Une fois que vous avez défini les exigences de votre moteur de recherche, la prochaine étape consiste à ingérer les données dont vous avez besoin. Si vous prévoyez d'utiliser des intégrations et des connecteurs, assurez-vous d'avoir accès à ces sources pour pouvoir accéder aux données dès que vous en avez besoin pour l'indexation. Si la source de données vous appartient, cela ne devrait pas poser de problème. Si la source de données est externe, soyez bien conscient que son utilisation présente certains risques. Le propriétaire de cette source de données pourrait en révoquer l'accès ou apporter des modifications aux données à tout moment, ce qui pourrait vous causer des problèmes par la suite. Pour pallier à cette éventualité, vous pouvez programmer des actualisations régulières, mais si des changements sont apportés à la structure ou à l'architecture des données, vous en subirez tout de même les effets. 

Si vous créez un moteur de recherche web, vous devrez utiliser un robot d'indexation pour aller chercher les données que vous souhaitez indexer. Le temps que cette tâche prendra dépendra entièrement de la portée de votre moteur de recherche. En théorie, vous pourriez créer votre propre robot d'indexation, mais cela demanderait beaucoup de travail. Il est donc plus intéressant d'utiliser un outil existant, comme le robot d'indexation Elastic. Celui-ci scannera tous les sites web que vous souhaitez. Vous pourrez même programmer des répétitions automatiques du crawling pour vous assurer que votre moteur de recherche reste à jour.

Étape 3 : Stocker les informations collectées

Peu importe que vous utilisiez un robot d'indexation, une API ou un connecteur. Dans tous les cas, vous avez besoin d'un endroit où stocker les informations collectées. Mais ne vous précipitez pas sur vos anciennes bases de données. Vous devez prendre en compte différents aspects, tels que le volume et la croissance des données, les exigences de performances, la structure des données, la scalabilité, la fiabilité, la sécurité et l'analytique. Vous devez aussi penser au coût de stockage de ces données, aussi bien à court terme qu'à long terme.

Comme nous l'avons mentionné précédemment, il serait également judicieux que vous évaluiez votre propre ensemble de compétences. Par exemple, si vous vous êtes beaucoup servi d'Elasticsearch® auparavant dans vos activités de développeur, ce produit constituera probablement la meilleure option pour vous. Mais si vous avez l'habitude d'utiliser d'autres types de bases de données, prenez votre décision en soupesant les facteurs énoncés ci-dessus.

Étape 4 : Indexer les pages

La prochaine étape consiste à indexer les données que vous avez collectées et stockées. C'est ce qui vous permettra de fournir aux utilisateurs les résultats les plus pertinents pour votre requête. Bonne nouvelle : l'indexation est assurée par le robot d'indexation d'Elastic, ce qui vous simplifiera grandement la tâche. Mais vous devrez quand même réfléchir à certains aspects, comme la granularité des données, l'indexation des attributs et la compression des données lors de la configuration de la structure de votre index.

Vous devrez sans doute procéder par tâtonnements, mais l'objectif est et reste d'aider les utilisateurs à :

  • trouver des informations pertinentes rapidement ;

  • affiner leur recherche et filtrer les résultats ;

  • découvrir des contenus associés.

L'idéal est d'utiliser une interface utilisateur de recherche prête à l'emploi, car vous disposerez ainsi d'une interface utilisateur immédiatement opérationnelle. Vous pourrez ainsi tester votre moteur de recherche, étudier l'indexation et apporter des changements pour rendre votre moteur de recherche plus performant. Vous pourrez notamment tester le filtrage et le tri, la pagination, ou encore la recherche avec saisie automatique.

Étape 5 : Optimisation des résultats de recherche

L'objectif ultime de la création d'un moteur de recherche est de fournir les résultats les plus utiles et les plus pertinents qui soient aux utilisateurs. Mais il est peu probable que vous y parveniez d'emblée. Vous devrez travailler encore et encore pour affiner votre moteur de recherche et vous rapprocher de cet objectif. Pour vous y aider, vous pouvez compter sur certaines fonctionnalités, comme l'association de mots-clés, une base de données vectorielle, des techniques de recherche hybride, les scores de pertinence, l'analyse des liens et les synonymes.

Vous pouvez aussi recourir au Machine Learning et à l'IA pour améliorer les capacités de recherche. Ces technologies sont particulièrement intéressantes pour votre moteur de recherche, car elles peuvent apprendre des comportements des utilisateurs, inclure une personnalisation plus poussée, et même comprendre l'intention et le ton des utilisateurs. Évidemment, leur utilisation s'accompagne de certains défis. Vous devez vous assurer qu'aucun préjugé ne vienne s'infiltrer dans votre moteur de recherche. Vous devez aussi faire preuve d'une grande rigueur quant à la confidentialité et à la sécurité.

Mise en place d'un moteur de recherche en toute simplicité

La création d'un moteur de recherche peut s'avérer intimidante. Mais nous espérons que cette procédure vous a prouvé que c'était en réalité une tâche à la portée de tous. De plus, Elastic est là pour vous aider tout au long du processus. Nos solutions simplifient l'ingestion des données avec des outils tels que le robot d'indexation. Elles facilitent l'indexation avec une architecture scalable et flexible. Et elles boostent la pertinence avec des fonctionnalités de Machine Learning.

Quel que soit le type du moteur de recherche que vous souhaitez créer, Elasticsearch vous fournit un ensemble complet d'outils pour mettre en place une expérience de recherche efficace et conviviale, dès le départ.

Prochaines étapes conseillées

Pour aller plus loin, voici quatre méthodes qui vous aideront à mettre en place de meilleures expériences de recherche :

  1. Démarrez un essai gratuit et découvrez l'aide qu'Elastic peut apporter à votre entreprise.

  2. Faites le tour de nos offres afin de savoir comment Elasticsearch Platform fonctionne et comment nos solutions s'adaptent à vos besoins.

  3. Apprenez à configurer votre cluster Elasticsearch, puis à collecter et à ingérer des données en regardant notre webinar de 45 minutes. 

  4. Partagez cet article par e-mail ou via LinkedIn, Twitter ou Facebook avec les personnes de votre réseau qui pourraient être intéressées par son contenu.

La publication et la date de publication de toute fonctionnalité ou fonction décrite dans le présent article restent à la seule discrétion d'Elastic. Toute fonctionnalité ou fonction qui n'est actuellement pas disponible peut ne pas être livrée à temps ou ne pas être livrée du tout.

Dans cet article, nous sommes susceptibles d'avoir utilisé ou mentionné des outils d'intelligence artificielle générative tiers appartenant à leurs propriétaires respectifs qui en assurent aussi le fonctionnement. Elastic n'a aucun contrôle sur les outils tiers et n'est en aucun cas responsable de leur contenu, de leur fonctionnement, de leur utilisation, ni de toute perte ou de tout dommage susceptible de survenir à cause de l'utilisation de tels outils. Lorsque vous utilisez des outils d'IA avec des informations personnelles, sensibles ou confidentielles, veuillez faire preuve de prudence. Toute donnée que vous saisissez dans ces solutions peut être utilisée pour l'entraînement de l'IA ou à d'autres fins. Vous n'avez aucune garantie que la sécurisation ou la confidentialité des informations renseignées sera assurée. Vous devriez vous familiariser avec les pratiques en matière de protection des données personnelles et les conditions d'utilisation de tout outil d'intelligence artificielle générative avant de l'utiliser. 

Elastic, Elasticsearch, ESRE, Elasticsearch Relevance Engine et les marques associées sont des marques commerciales, des logos ou des marques déposées d'Elasticsearch N.V. aux États-Unis et dans d'autres pays. Tous les autres noms de produits et d'entreprises sont des marques commerciales, des logos ou des marques déposées appartenant à leurs propriétaires respectifs.