Cas pratiques Elasticsearch

30 cas pratiques Elasticsearch disponibles. Niveaux : fondamental (10), avancé (10), expert (10).

Fait partie de : Cas pratiques de supervision et exploitation

FondamentalElasticsearch

Correction d’un champ mal typé empêchant une agrégation

Contexte : Une application souhaite effectuer une agrégation sur le champ category d’un index produits. Le Problème : Le champ category est défini en type text uniquement. Mapping actuel : "category": { "type": "text" } Les agrégations échouent car le champ n’est pas de type keyword. Contraintes : Corriger le mapping sans perdre la capacité de recherche textuelle. Permettre à la fois la recherche et les agrégations. Livrable attendu : Proposer un mapping adapté (multi-field text + keyword) permettant d’effectuer des agrégations sur category.

mappingkeywordaggregation+2
FondamentalElasticsearch

Correction d’un index non rafraîchi après insertion

Contexte : Après insertion d’un document, celui-ci n’apparaît pas immédiatement dans les résultats de recherche. Le Problème : Le rafraîchissement de l’index n’est pas forcé. Contraintes : Comprendre le fonctionnement du refresh interval. Proposer une solution adaptée pour les environnements de test sans impacter les performances en production. Livrable attendu : Expliquer et configurer un mécanisme de refresh approprié permettant de voir les documents nouvellement indexés.

refreshindexingbugfix+2
FondamentalElasticsearch

Correction d’un index sans analyse adaptée aux recherches partielles

Contexte : Les utilisateurs souhaitent rechercher des produits même avec des mots partiels. Le Problème : Le mapping actuel n’utilise que l’analyseur standard, rendant les recherches partielles inefficaces. Contraintes : Ajouter un analyzer simple (par exemple edge n-gram) pour améliorer la recherche partielle. Maintenir les performances acceptables. Livrable attendu : Proposer un mapping incluant un analyzer adapté aux recherches partielles sur le champ name.

analyzerngrammapping+2
FondamentalElasticsearch

Correction d’une mauvaise gestion des champs date

Contexte : Une application stocke des documents avec un champ created_at mais les requêtes par plage de dates échouent. Le Problème : Le champ created_at est défini en type text. Mapping actuel : "created_at": { "type": "text" } Les requêtes range ne fonctionnent pas. Contraintes : Corriger le mapping pour utiliser un type date. Assurer la compatibilité avec les documents existants. Livrable attendu : Proposer un mapping correct pour le champ date et une requête range permettant de filtrer par intervalle temporel.

datemappingrange-query+2
FondamentalElasticsearch

Correction d’une requête match mal configurée

Contexte : Une recherche par nom de produit ne retourne aucun résultat alors que les documents existent. Le Problème : La requête utilise term au lieu de match sur un champ analysé. Extrait actuel : { "query": { "term": { "name": "Laptop" } } } Le champ name est de type text. Contraintes : Corriger la requête sans modifier le mapping existant. Maintenir la capacité de recherche full-text. Livrable attendu : Proposer une requête adaptée permettant de retrouver les documents correspondants.

querymatchbugfix+2
FondamentalElasticsearch

Création d’un index Elasticsearch pour recherche de produits

Contexte : Votre équipe développe une plateforme e-commerce nécessitant une recherche rapide par nom de produit. Le Problème : Les requêtes SQL actuelles ne permettent pas une recherche textuelle performante ni tolérante aux fautes de frappe. Contraintes : Créer un index Elasticsearch avec un mapping adapté pour les champs name, description et price. Activer une analyse textuelle standard pour le champ name. Ne pas utiliser de plugins externes. Livrable attendu : Fournir la requête de création d’index avec mapping et un exemple d’insertion de document permettant d’effectuer des recherches textuelles efficaces.

indexmappingsearch+2
FondamentalElasticsearch

Création d’une agrégation simple pour statistiques par catégorie

Contexte : L’équipe marketing souhaite connaître le nombre de produits par catégorie. Le Problème : Aucune agrégation n’est encore configurée pour produire ces statistiques. Contraintes : Utiliser une aggregation de type terms sur un champ keyword. Limiter les résultats aux 10 catégories principales. Livrable attendu : Fournir une requête Elasticsearch permettant d’obtenir le nombre de documents par catégorie.

aggregationtermsstatistics+2
FondamentalElasticsearch

Insertion et recherche simple de documents JSON

Contexte : Une application doit stocker et rechercher des profils utilisateurs dans Elasticsearch. Le Problème : L’équipe ne dispose pas encore des requêtes nécessaires pour indexer et interroger les documents. Contraintes : Créer un index simple. Insérer un document JSON avec des champs username et email. Exécuter une requête de recherche par username. Livrable attendu : Fournir les requêtes HTTP ou JSON permettant de créer l’index, indexer un document et effectuer une recherche simple.

indexingjsonquery+2
FondamentalElasticsearch

Mise en place d’un filtre booléen simple

Contexte : Une application doit rechercher des produits disponibles avec un prix inférieur à 100. Le Problème : La requête actuelle ne combine pas correctement les conditions. Contraintes : Utiliser une requête bool avec must et filter. Optimiser la requête pour éviter les calculs inutiles sur le score. Livrable attendu : Fournir une requête booléenne combinant recherche textuelle et filtre numérique efficace.

bool-queryfilterrange+2
FondamentalElasticsearch

Mise en place d’une pagination simple des résultats

Contexte : Une API doit afficher les résultats de recherche produits par page. Le Problème : Tous les résultats sont actuellement renvoyés en une seule requête. Contraintes : Utiliser les paramètres from et size pour implémenter une pagination simple. Limiter le nombre de résultats par page à 20. Livrable attendu : Fournir un exemple de requête Elasticsearch permettant de paginer les résultats efficacement.

paginationqueryfrom-size+2
AvancéElasticsearch

Conception d’un index optimisé pour recherche multi-critères e-commerce

Contexte : Votre plateforme e-commerce doit permettre une recherche combinant texte libre, filtres par catégorie, plage de prix et disponibilité en stock. Le Problème : L’index actuel ne supporte pas efficacement les requêtes combinées et certaines recherches deviennent lentes sous forte charge. Contraintes : Définir un mapping adapté avec champs text et keyword en multi-field. Optimiser les champs numériques pour les filtres range. Éviter les calculs inutiles de score pour les filtres. Livrable attendu : Proposer un mapping optimisé et une requête bool complète combinant match, filter et range pour assurer performance et pertinence.

mappingbool-queryrange+2
AvancéElasticsearch

Correction d’un cluster déséquilibré avec shards mal répartis

Contexte : Les métriques montrent que certains nœuds Elasticsearch sont surchargés tandis que d’autres sont sous-utilisés. Le Problème : L’index a été créé avec un nombre de shards inadapté à la taille du cluster. Contraintes : Analyser la configuration actuelle. Ajuster le nombre de shards et replicas si nécessaire. Minimiser l’impact sur la production. Livrable attendu : Proposer une stratégie de redimensionnement d’index et de rééquilibrage des shards pour optimiser la distribution de charge.

shardsreplicascluster+2
AvancéElasticsearch

Correction d’un problème de mapping dynamique incontrôlé

Contexte : L’index accepte des documents avec des champs variables envoyés par différentes équipes. Le Problème : Le mapping dynamique crée un grand nombre de champs, entraînant une explosion du mapping. Configuration actuelle : "dynamic": true Le nombre de champs augmente continuellement. Contraintes : Restreindre le mapping dynamique. Définir explicitement les champs autorisés. Prévenir la création excessive de champs. Livrable attendu : Proposer une stratégie de gestion du mapping dynamique limitant les risques d’explosion du schéma.

mappingdynamicbugfix+2
AvancéElasticsearch

Correction d’un problème de refresh interval inadapté

Contexte : L’application indexe un grand nombre de documents par seconde. Le Problème : Le refresh_interval par défaut provoque une surcharge lors d’indexations massives. Configuration actuelle : "refresh_interval": "1s" Cela impacte les performances d’écriture. Contraintes : Ajuster le refresh_interval en fonction du besoin réel de visibilité immédiate. Maintenir un équilibre entre performance d’écriture et fraîcheur des données. Livrable attendu : Proposer une configuration optimisée du refresh_interval adaptée à un workload d’indexation massif.

refreshperformanceindexing+2
AvancéElasticsearch

Correction d’un problème de scoring incohérent

Contexte : Les résultats de recherche retournent des documents peu pertinents en première position. Le Problème : La requête actuelle mélange must et should sans configuration adaptée du minimum_should_match. Extrait actuel : { "query": { "bool": { "must": [{ "match": { "title": "cloud security" }}], "should": [{ "match": { "description": "cloud" }}] } } } Les scores sont imprévisibles. Contraintes : Ajuster la requête pour améliorer la pertinence. Configurer minimum_should_match si nécessaire. Livrable attendu : Proposer une requête optimisée garantissant un scoring cohérent et pertinent.

scoringbool-queryrelevance+2
AvancéElasticsearch

Correction d’une mauvaise gestion des champs nested

Contexte : Un index stocke des produits avec une liste de variantes (taille, couleur). Le Problème : Les requêtes retournent des résultats incorrects car les variantes sont stockées comme objets simples au lieu de nested. Extrait actuel : "variants": { "type": "object" } Les filtres sur plusieurs attributs sont incohérents. Contraintes : Modifier le mapping pour utiliser le type nested. Adapter la requête en conséquence. Livrable attendu : Proposer un mapping nested correct et une requête adaptée garantissant des résultats précis.

nestedmappingbugfix+2
AvancéElasticsearch

Implémentation d’agrégations complexes avec filtres imbriqués

Contexte : Une équipe marketing souhaite obtenir des statistiques sur les ventes par catégorie et tranche de prix. Le Problème : Les agrégations actuelles ne prennent pas en compte les filtres dynamiques. Contraintes : Combiner une requête bool avec des agrégations nested ou filtered. Optimiser pour éviter un impact excessif sur les performances. Livrable attendu : Fournir une requête Elasticsearch combinant filtres et agrégations permettant d’obtenir des statistiques précises et performantes.

aggregationfilterstatistics+2
AvancéElasticsearch

Mise en place d’un autocomplete performant avec edge n-gram

Contexte : Les utilisateurs souhaitent bénéficier d’une recherche instantanée dès la saisie des premières lettres. Le Problème : Le mapping actuel ne permet pas une recherche partielle efficace. Contraintes : Définir un analyzer personnalisé utilisant edge n-gram. Séparer le champ indexé pour autocomplete du champ principal. Maintenir de bonnes performances. Livrable attendu : Proposer un mapping incluant un analyzer edge n-gram et une requête adaptée pour implémenter un système d’autocomplete.

autocompletengramanalyzer+2
AvancéElasticsearch

Mise en place d’une recherche multi-langue

Contexte : Votre application est utilisée dans plusieurs pays avec des contenus en français et en anglais. Le Problème : Les recherches ne tiennent pas compte des spécificités linguistiques (stemming, stopwords). Contraintes : Configurer des analyzers spécifiques par langue. Permettre la recherche sur des champs multilingues. Maintenir de bonnes performances. Livrable attendu : Proposer un mapping et des analyzers adaptés pour gérer efficacement une recherche multi-langue.

multilingualanalyzerstemming+2
AvancéElasticsearch

Optimisation d’une recherche sur grands volumes de données

Contexte : L’index contient plusieurs dizaines de millions de documents. Le Problème : Certaines requêtes de recherche prennent plusieurs secondes. Contraintes : Analyser l’usage des filtres, du scoring et des champs analysés. Optimiser les requêtes pour privilégier les filtres au scoring lorsque possible. Ajuster le mapping si nécessaire. Livrable attendu : Proposer une optimisation concrète permettant de réduire significativement le temps de réponse des requêtes fréquentes.

performancequery-optimizationlarge-index+2
ExpertElasticsearch

Conception d’une architecture Elasticsearch multi-cluster avec réplication inter-régions

Contexte : Votre plateforme SaaS est déployée sur plusieurs régions géographiques et doit garantir une recherche rapide avec haute disponibilité mondiale. Le Problème : Un seul cluster Elasticsearch centralisé provoque une latence élevée pour certaines régions et constitue un point unique de défaillance. Contraintes : Mettre en place une architecture multi-cluster avec Cross-Cluster Replication (CCR). Assurer la cohérence des index critiques. Minimiser l’impact sur les performances d’indexation. Livrable attendu : Proposer une architecture détaillée incluant configuration des clusters leader/follower, stratégie de réplication et gestion du failover inter-régions.

multi-clusterreplicationhigh-availability+2
ExpertElasticsearch

Correction d’un problème d’explosion du nombre de shards

Contexte : Votre cluster contient des centaines d’index journaliers avec plusieurs shards chacun. Le Problème : Le nombre total de shards dépasse les bonnes pratiques recommandées, provoquant surcharge mémoire et lenteurs. Configuration actuelle : "number_of_shards": 5 Chaque index quotidien utilise 5 shards indépendamment de son volume. Contraintes : Réduire le nombre de shards sans perte de données. Mettre en place une stratégie ILM adaptée. Minimiser l’impact sur la production. Livrable attendu : Proposer une stratégie de consolidation des shards et de gestion du cycle de vie des index (ILM) pour optimiser les ressources du cluster.

shardsilmcluster+2
ExpertElasticsearch

Correction d’un problème de requêtes lentes dues à un champ non doc_values

Contexte : Certaines agrégations sur un champ numérique provoquent une consommation mémoire excessive. Le Problème : Le champ est configuré sans doc_values, forçant Elasticsearch à charger les données en mémoire. Extrait mapping actuel : "price": { "type": "float", "doc_values": false } Les agrégations sont très lentes. Contraintes : Corriger le mapping pour optimiser les agrégations. Gérer la migration sans interruption majeure. Livrable attendu : Proposer un mapping corrigé et une stratégie de reindexation permettant d’améliorer significativement les performances des agrégations.

doc-valuesaggregationbugfix+2
ExpertElasticsearch

Correction d’un split-brain dans un cluster mal configuré

Contexte : Après une panne réseau, deux nœuds se sont considérés comme master, provoquant une instabilité du cluster. Le Problème : La configuration de discovery et des master-eligible nodes est incorrecte. Configuration actuelle : "discovery.type": "single-node" Le cluster n’est pas configuré pour la production. Contraintes : Mettre en place une configuration correcte avec quorum et master nodes dédiés. Assurer la stabilité en cas de panne. Livrable attendu : Proposer une configuration cluster robuste évitant les scénarios de split-brain en production.

clustersplit-brainconfiguration+2
ExpertElasticsearch

Correction d’une requête provoquant un scan massif non filtré

Contexte : Une requête analytique retourne des millions de documents, provoquant un dépassement mémoire. Le Problème : L’absence de filtres précis entraîne un scan complet des shards. Extrait actuel : { "query": { "match_all": {} } } La requête surcharge le cluster. Contraintes : Introduire des filtres ciblés et limiter la taille des résultats. Utiliser scroll ou search_after si nécessaire. Livrable attendu : Proposer une stratégie de requête optimisée évitant les scans massifs et améliorant la stabilité du cluster.

query-optimizationscrollsearch-after+2
ExpertElasticsearch

Mise en place d’un pipeline d’ingestion avec enrichissement

Contexte : Votre application reçoit des documents bruts provenant de différentes sources externes. Le Problème : Les données doivent être enrichies (ajout de géolocalisation, normalisation de champs) avant indexation. Contraintes : Utiliser un ingest pipeline Elasticsearch avec processors (grok, set, enrich). Garantir la performance même sous forte ingestion. Livrable attendu : Concevoir un pipeline d’ingestion complet incluant enrichissement et transformation des documents avant leur indexation.

ingest-pipelinegrokenrich+2
ExpertElasticsearch

Mise en place d’une sécurité avancée avec rôles et index restrictions

Contexte : Plusieurs équipes utilisent le même cluster Elasticsearch pour différents projets. Le Problème : Tous les utilisateurs ont accès à tous les index, ce qui pose un risque de sécurité. Contraintes : Définir des rôles spécifiques limitant l’accès à certains index et certaines actions (read, write). Activer l’authentification et sécuriser les communications. Livrable attendu : Proposer une configuration de sécurité basée sur rôles et permissions assurant isolation et protection des données.

securityrolesauthentication+2
ExpertElasticsearch

Optimisation avancée de recherche vectorielle hybride

Contexte : Une application souhaite combiner recherche textuelle classique et recherche vectorielle basée sur embeddings. Le Problème : Les résultats ne sont pas correctement fusionnés et la latence augmente fortement. Contraintes : Configurer un champ vector et une requête hybride combinant knn et match. Optimiser la performance et la pertinence globale. Livrable attendu : Proposer une stratégie de recherche hybride performante combinant full-text et similarité vectorielle dans Elasticsearch.

vector-searchknnhybrid-search+2
ExpertElasticsearch

Optimisation avancée du scoring avec fonction personnalisée

Contexte : Une marketplace souhaite prioriser les produits sponsorisés et les mieux notés dans les résultats de recherche. Le Problème : Le scoring par défaut basé sur TF-IDF ne reflète pas les priorités métier. Contraintes : Implémenter une requête function_score intégrant un boost sur le champ rating et un poids spécifique pour les produits sponsorisés. Maintenir la pertinence textuelle. Livrable attendu : Proposer une requête Elasticsearch avancée combinant recherche full-text et scoring personnalisé aligné avec les exigences métier.

scoringfunction-scorerelevance+2
ExpertElasticsearch

Optimisation d’un index time-series massif avec ILM avancé

Contexte : Une plateforme de monitoring indexe plusieurs millions de logs par heure. Le Problème : Les anciens index consomment beaucoup de ressources et ralentissent le cluster. Contraintes : Mettre en place un Index Lifecycle Management (ILM) avec rollover automatique, phases warm et delete. Optimiser la gestion des données anciennes. Livrable attendu : Proposer une politique ILM complète permettant de gérer efficacement le cycle de vie des index time-series à grande échelle.

ilmtime-seriesrollover+2

Questions originales conçues par CodeDuel. CodeDuel n'est affilié à aucun éditeur ni organisme de certification cité ; les noms de certifications et les marques appartiennent à leurs titulaires et servent uniquement à indiquer le domaine couvert. Signaler un contenu

    Cas pratiques Elasticsearch : 30 mises en situation | CodeDuel