Elasticsearch, Kibana et Neo4j : recherche et graphes en pratique
Indexer 200 853 articles de presse en trente secondes, les retrouver par pertinence et malgré les fautes de frappe, les analyser dans Kibana, relier auteurs et sujets dans un graphe Neo4j, puis recommander quoi lire ensuite : ce cours construit un moteur de recherche et de recommandation complet, du premier GET / jusqu'au script Python qui combine les deux moteurs. Tout tourne dans un kit Docker unique, livré avec le cours et testé de bout en bout, pour que l'énergie aille dans l'apprentissage et jamais dans le dépannage.
Durée du cours : 10h
Ce que vous allez apprendre
- Comprendre pourquoi un
LIKE '%mot%'ne fait pas un moteur de recherche, et ce qu'un index inversé change. - Lire et piloter un cluster Elasticsearch : nœuds, index, shards, répliques, santé, mémoire et disque.
- Indexer, modifier et supprimer des documents, puis charger un corpus entier avec l'API
_bulk. - Concevoir un mapping qui tient :
textcontrekeyword, dates, multi-champs, analyseurs et réindexation. - Écrire des requêtes Query DSL précises :
match,multi_match,bool, filtres, tri, pagination, mise en évidence, et lire un score. - Répondre à des questions métier avec les agrégations : catégories, tendances par mois, auteurs les plus actifs.
- Construire dans Kibana une Data View, des recherches KQL, des visualisations Lens et un tableau de bord partageable.
- Ajouter l'autocomplétion, la tolérance aux fautes et interroger le corpus en ES|QL.
- Comparer Elasticsearch et OpenSearch sur les mêmes requêtes et choisir en connaissance de cause.
- Modéliser un graphe, le charger avec
LOAD CSV, poser contraintes et index, puis écrire du Cypher avancé : chemins, agrégations, recommandation. - Piloter les deux moteurs depuis Python avec les clients officiels, sans rien installer sur votre machine.
- Sécuriser, sauvegarder et surveiller, puis diagnostiquer seul les douze pannes classiques.
Prérequis
- Être à l'aise dans un terminal (Windows PowerShell, macOS ou Linux).
- Connaître les bases de SQL (
SELECT,WHERE,JOIN) et savoir lire du JSON. - Docker Desktop installé, avec au moins 4 Go de mémoire alloués (6 Go recommandés). Le module 1 vérifie tout avec une commande et indique quoi corriger.
- Aucun Python, aucun
curl, aucunjqà installer : tout est fourni dans le kit.
Modules du cours
- Pourquoi un moteur de recherche et une base de graphes ? Installer le kit Veille
- Concepts clés d'Elasticsearch : cluster, nœud, index, shard, document
- Documents : CRUD, versions et import massif avec
_bulk - Mapping,
textcontrekeyword, analyseurs - Rechercher : Query DSL,
bool, filtres et pertinence - Agrégations : compter, grouper, suivre dans le temps
- Kibana : Data View, Discover, KQL, Lens et tableaux de bord
- Autocomplétion, tolérance aux fautes, ES|QL et recherche avancée
- OpenSearch et OpenSearch Dashboards : comparer, choisir, migrer
- Bases de graphes, Neo4j et premiers pas en Cypher
- Modéliser un graphe et le charger : contraintes, index,
LOAD CSV - Cypher avancé : chemins, agrégations et recommandation
- Piloter Elasticsearch et Neo4j depuis Python
- Sécurité, utilisateurs, sauvegardes et exploitation au quotidien
- Diagnostiquer : les douze pannes classiques et leur remède
- Projet : le moteur Veille complet, recherche et recommandation
Fil rouge
Veille, jeune entreprise montréalaise de veille médiatique, accompagne les seize modules. Ses clients cherchent dans des centaines de milliers d'articles, suivent des sujets dans le temps et veulent qu'on leur recommande quoi lire ensuite. Vous arrivez dans l'équipe avec Sami, data engineer fraîchement recruté, sous l'œil d'Inès, la lead data ; Léa construit les tableaux de bord pour les clients et Karim branche l'API sur les moteurs. Le corpus est réel : 200 853 titres du HuffPost classés en 41 catégories entre 2012 et 2018. Module après module, Veille sait retrouver un article, l'analyser, relier ses auteurs et ses sujets, puis recommander ; le module 16 assemble le tout en un moteur que vous pourrez démontrer en cinq minutes.
Le kit Veille : zéro installation, zéro dépannage
Le cours est livré avec un dossier à télécharger (kit Veille, archive zip de 30 Ko) qui contient un seul docker-compose.yml et deux scripts, lab.sh pour macOS, Linux et WSL2, lab.ps1 pour Windows PowerShell. Trois commandes suffisent : doctor vérifie Docker, la mémoire et les ports et dit exactement quoi corriger ; up démarre Elasticsearch 9.5, Kibana et Neo4j 5.26 et attend qu'ils soient vraiment prêts ; import-news charge le corpus et prépare le fichier pour Neo4j. Le mot de passe de Kibana se règle tout seul, APOC s'installe tout seul, l'environnement Python avec les clients officiels tourne dans un conteneur, OpenSearch se lance à côté quand on en a besoin, et reset rend un état neuf en dix secondes. Chaque module se termine par une section « Si ça ne marche pas » et le module 15 vous fait reproduire puis réparer les douze pannes que tout le monde rencontre.
Pourquoi ce cours est différent
Les versions sont celles d'aujourd'hui : Elastic Stack 9.5, Neo4j 5.26 LTS, OpenSearch 3.8, avec les nouveautés qui comptent (ES|QL, CALL { } IN TRANSACTIONS, sécurité activée par défaut). Chaque requête du cours a été exécutée sur le corpus et son résultat est indiqué, pour que vous sachiez à chaque étape si vous avez réussi. Vous n'apprenez pas des API en abstrait : vous livrez un produit.
Évaluation et attestation
Le parcours se termine par un examen de 40 questions qui couvre les seize modules. En cas de réussite, une attestation d'achèvement est délivrée immédiatement ; son numéro est vérifiable sur la plateforme.
Les cours gratuits, eux, se concluent par un quiz de 5 questions avec un aperçu de l'attestation, sans certification.