Elastic Search : mise en place d'une expérience de recherche sémantique

Aperçu


Intégration de vos données

Création d'un compte Elastic Cloud

Commencez un essai de 14 jours. Une fois que vous avez accédé à cloud.elastic.co et créé votre compte, suivez les étapes décrites ci-dessous pour découvrir comment lancer votre première suite Elastic dans l'une des régions (plus de 50) prises en charge dans le monde.

Si vous cliquez sur Edit settings (Modifier les paramètres), vous pouvez sélectionner un fournisseur cloud, comme AWS, Microsoft Azure ou Google Cloud. Ensuite, vous pouvez désigner la région de votre choix. Vous pouvez également modifier le profil matériel afin de mieux personnaliser le déploiement en fonction de vos besoins. Enfin, la dernière version d'Elastic est présélectionnée par défaut.

À la création de votre déploiement, un nom d'utilisateur et un mot de passe vous seront donnés. Veillez bien à copier ou à télécharger ces informations, car vous en aurez besoin lors de l'installation de vos intégrations.

Ingestion de données avec le robot d'indexation d'Elastic

Maintenant que vous avez créé votre déploiement, vous pouvez commencer à intégrer des données dans Elastic. Pour ce faire, utilisons le robot d'indexation d'Elastic. Tout d'abord, sélectionnez Build a semantic search experience (Mettre en place une expérience de recherche sémantique).

Ensuite, pour configurer la recherche sémantique, une page s'affiche où vous pouvez vous lancer à l'aide d'une des méthodes suivantes :

  • Elastic Learned Sparse Encoder ;
  • recherche vectorielle ;
  • enrichissement du traitement du langage naturel.

Toutes ces fonctionnalités font partie de l'éventail proposé par Elasticsearch Relevance Engine (ESRE).

Dans le cadre de ce guide, nous vous expliquons comment configurer la recherche sémantique à l'aide des deux méthodes, à savoir Elastic Learned Sparse Encoder et la recherche vectorielle.

REMARQUE : Si vous souhaitez vous lancer avec la recherche sémantique et chercher du texte, vous devriez essayer de suivre les instructions pour Elastic Learned Sparse Encoder en premier. La recherche vectorielle des k plus proches voisins peut être plus adaptée aux utilisateurs qui remplissent certains des critères suivants :

  • posséder des compétences en Data Science ou avoir accès à ces connaissances ;
  • avoir déterminé que le modèle de recherche sémantique intégrée d'Elastic Learned Sparse Encoder ne couvre pas leurs cas d'utilisation ;
  • avoir de l'expérience dans la comparaison des modèles de plongement et, éventuellement, dans le réglage des modèles de Machine Learning ;
  • savoir que la recherche rapide des k plus proches voisins peut nécessiter d'importantes ressources de la RAM.

Si vous pensez posséder les dispositions requises pour vous lancer, sélectionnez votre méthode de prédilection afin de développer une application propulsée par la recherche basée sur l'intelligence artificielle.

Avec les deux méthodes, commencez par sélectionner Create an index (Créer un index). Ensuite, sélectionnez Web crawler (Robot d'indexation) afin de lancer l'ingestion de vos données.

Pour configurer le robot d'indexation, consultez cette visite guidée ou suivez les instructions ci-dessous.

À présent, créez un index. Dans le cadre de ce guide, nous allons ingérer des articles de blog sur le site elastic.co/fr.

Web crawler search index

Après avoir donné un nom à votre index, cliquez sur Create index (Créer l'index). Ensuite, cliquez sur Validate Domain (Valider le domaine), puis sur Add domain (Ajouter le domaine).

Après avoir ajouté le domaine, en bas à droite de la page, cliquez sur Edit (Modifier) afin d'ajouter un sous-domaine, le cas échéant.

Add a domain to your indexEnsuite, sélectionnez Crawl rules (Règles d'exploration), puis ajoutez vos règles comme expliqué ci-dessous.*

Manage domains

*Comme la page que vous voulez indexer sera liée à d'autres pages, vous devriez ajouter des règles supplémentaires afin de refuser ces liens et d'autres connexions.

 

Ensuite, quand vous sélectionnez votre champ ultérieurement, certains champs dépassent la limite de 512 tokens, comme body_content. Vous devriez tirer parti de la section Extraction rules (Règles d'extraction) pour filtrer uniquement les éléments pertinents des articles de blog.

Lorsque vous sélectionnez Extraction rules, cliquez sur Add content extraction rule (Ajouter une règle d'extraction de contenu).

Ensuite, sous Rule description (Description de règle), donnez un nom qui permettra à autrui de connaître le type de données extraites par la règle. Dans le cadre de ce guide, nous l'appelons "main" (principale).

À présent, sélectionnez Apply to all URLs (Appliquer à toutes les URL), puis Add content fields (Ajouter des champs de contenu). Un panneau contextuel s'affiche. Renseignez et sélectionnez les critères ci-dessous dans ce panneau.

  • "Document field" (Champ du document) :
    • "Field name" (Nom du champ) : "main" (principal)
  • Source :
    • "Extract content from" (Extraction de content depuis) : "HTML element" (élément HTML)
    • "CSS selector or XPath expression" (Sélecteur CSS ou expression XPath) : "main" (principal·e)
  • "Content" (Contenu) :
    • "Use content from" (Utilisation de content depuis) : "Extracted Value" (valeur extraite)
    • "Store extracted content as" (Stockage du contenu extrait en tant que) : "A string" (une chaîne)

Après avoir renseigné ces critères, cliquez sur Save (Enregistrer), puis sur Save rule (Enregistrer la règle).


Fonctionnement d'Elasticsearch et d'ESRE

Ingestion et recherche de vos données à l'aide d'Elastic Learned Sparse Encoder

Après avoir passé en revue les recommandations de critères ci-dessus avant de vous lancer avec la recherche vectorielle et après avoir identifié votre méthode de prédilection, accédez à la section Search your data using kNN vector search (Rechercher vos données avec la recherche vectorielle des k plus proches voisins) sur la gauche de l'écran, puis suivez les instructions qui s'affichent.

Si vous préférez utiliser Elastic Learned Sparse Encoder, le modèle de recherche sémantique d'Elastic prêt à l'emploi, suivez les instructions ci-dessous.

Pour ce faire, cliquez sur Pipelines, puis sur Unlock your custom pipelines (Déverrouiller vos pipelines personnalisés) en sélectionnant Copy and customize (Copier et personnaliser) en haut de l'écran. Ensuite, sous Machine Learning Inference Pipelines (Pipelines d'inférence du Machine Learning), sélectionnez Deploy (Déployer) afin de télécharger le modèle, puis de l'installer dans votre déploiement Elasticsearch.

Une fois déployé, sélectionnez Start single-threaded (Commencer avec un seul thread), puis + Add inference Pipeline (Ajouter un pipeline d'inférence). Ensuite, procédez comme suit :

  1. Sélectionnez un pipeline nouveau ou existant.
  2. Nommez-le.
  3. Enfin, dans le menu "Select trained ML Model" (Sélectionner le modèle de Machine Learning entraîné), sélectionnez ELSER Text Expansion (Expansion de texte d'ELSER), puis cliquez sur Continue (Continuer).

À présent, vous devez sélectionner les champs où appliquer le modèle ELSER Text Expansion. Sous "Source fields" (Champs sources), sélectionnez "title" (titre) et "main" (principal), puis cliquez sur Add (Ajouter).

Ensuite, cliquez sur Continue (Continuer).

Ignorez l'étape Test your pipeline results (Tester les résultats de votre pipeline) en cliquant sur Continue (Continuer), puis cliquez sur Create pipeline (Créer le pipeline).

Maintenant que vous avez créé votre pipeline, sélectionnez Crawl (Indexer) en haut à droite de l'écran, puis Crawl all domains on this index (Indexer tous les domaines de cet index).

Maintenant, vous pouvez chercher les informations qui vous intéressent. Pour ce faire, optez pour l'une des deux méthodes recommandées ci-dessous :

  • utilisation des outils de développement ;
  • utilisation de la fonctionnalité Search Application (Application de recherche) comme point de terminaison pour votre application.

Pour savoir quelle méthode utiliser, suivez les instructions ci-dessous :

  • Si vous êtes développeur et souhaitez mettre en œuvre la recherche (pour votre application web), vous devriez utiliser les outils de développement afin de tester et d'affiner les résultats de recherche provenant de vos données indexées.
  • Si vous souhaitez créer un point de terminaison de recherche auquel vous pouvez envoyer des requêtes de recherche à partir de votre propre application où vous pouvez obtenir des résultats de recherche, vous devriez utiliser la fonctionnalité Search Application.

Regardez les deux courtes vidéos ci-dessous qui vous expliquent comment utiliser les outils de développement et la fonctionnalité Search Application. Vous pouvez également consulter cette visite guidée.


Étapes suivantes

Merci d'avoir pris le temps de configurer la recherche sémantique pour vos données à l'aide d'Elastic Cloud. Lorsque vous commencerez avec Elastic, vous comprendrez certains éléments opérationnels, de sécurité et de données que vous devrez gérer en tant qu'utilisateur lors du déploiement dans votre environnement.