Elasticsearch, Kibana and Neo4j: search and graphs in practice
Index 200,853 news articles in thirty seconds, retrieve them by relevance and in spite of typos, analyze them in Kibana, connect authors and topics in a Neo4j graph, then recommend what to read next: this course builds a complete search and recommendation engine, from the very first GET / all the way to the Python script that combines both engines. Everything runs inside a single Docker kit, shipped with the course and end-to-end tested, so the energy goes into learning and never into troubleshooting.
Course duration: 10h
What you will learn
- Understand why a
LIKE '%word%'does not make a search engine, and what an inverted index changes. - Read and drive an Elasticsearch cluster: nodes, indices, shards, replicas, health, memory and disk.
- Index, update and delete documents, then load a whole corpus with the
_bulkAPI. - Design a mapping that holds:
textversuskeyword, dates, multi-fields, analyzers and reindexing. - Write precise Query DSL queries:
match,multi_match,bool, filters, sort, pagination, highlight, and read a score. - Answer business questions with aggregations: categories, monthly trends, most active authors.
- Build a Data View in Kibana, KQL searches, Lens visualizations and a shareable dashboard.
- Add autocomplete, typo tolerance and query the corpus with ES|QL.
- Compare Elasticsearch and OpenSearch on the same queries and choose knowingly.
- Model a graph, load it with
LOAD CSV, set constraints and indexes, then write advanced Cypher: paths, aggregations, recommendation. - Drive both engines from Python with the official clients, without installing anything on your machine.
- Secure, back up and monitor, then diagnose the twelve classic failures on your own.
Prerequisites
- Comfortable in a terminal (Windows PowerShell, macOS or Linux).
- Know the basics of SQL (
SELECT,WHERE,JOIN) and be able to read JSON. - Docker Desktop installed, with at least 4 GB of memory allocated (6 GB recommended). Module 1 checks everything with one command and tells you what to fix.
- No Python, no
curl, nojqto install: everything ships in the kit.
Course modules
- Why a search engine and a graph database? Install the Veille kit
- Elasticsearch key concepts: cluster, node, index, shard, document
- Documents: CRUD, versions and bulk import with
_bulk - Mapping,
textversuskeyword, analyzers - Search: Query DSL,
bool, filters and relevance - Aggregations: count, group, track over time
- Kibana: Data View, Discover, KQL, Lens and dashboards
- Autocomplete, typo tolerance, ES|QL and advanced search
- OpenSearch and OpenSearch Dashboards: compare, choose, migrate
- Graph databases, Neo4j and first steps in Cypher
- Model a graph and load it: constraints, indexes,
LOAD CSV - Advanced Cypher: paths, aggregations and recommendation
- Drive Elasticsearch and Neo4j from Python
- Security, users, backups and day-to-day operations
- Diagnose: the twelve classic failures and how to fix them
- Project: the complete Veille engine, search and recommendation
Running example
Veille, a young Montréal media-monitoring startup, runs through all sixteen modules. Its customers search across hundreds of thousands of articles, follow topics over time, and want recommendations for what to read next. You join the team alongside Sami, a freshly hired data engineer, under the eye of Inès, the data lead; Léa builds the dashboards for customers and Karim wires the API into the engines. The corpus is real: 200,853 HuffPost headlines sorted into 41 categories between 2012 and 2018. Module after module, Veille learns to retrieve an article, analyze it, connect its authors and topics, then recommend; module 16 assembles everything into an engine you can demo in five minutes.
The Veille kit: zero install, zero troubleshooting
The course ships with a folder to download (Veille kit, 30 KB zip archive) that contains a single docker-compose.yml and two scripts, lab.sh for macOS, Linux and WSL2, lab.ps1 for Windows PowerShell. Three commands are enough: doctor checks Docker, memory and ports and tells you exactly what to fix; up starts Elasticsearch 9.5, Kibana and Neo4j 5.26 and waits for them to be truly ready; import-news loads the corpus and prepares the file for Neo4j. Kibana's password is set automatically, APOC installs itself, the Python environment with the official clients runs in a container, OpenSearch spins up alongside when needed, and reset brings back a fresh state in ten seconds. Every module ends with an "If it doesn't work" section, and module 15 has you reproduce and fix the twelve failures that everyone runs into.
Why this course is different
The versions are today's: Elastic Stack 9.5, Neo4j 5.26 LTS, OpenSearch 3.8, with the new features that matter (ES|QL, CALL { } IN TRANSACTIONS, security on by default). Every query in the course has been executed on the corpus and its result is listed, so you know at each step whether you succeeded. You are not learning APIs in the abstract: you are shipping a product.
Assessment and certificate
The course ends with a 40-question exam covering all sixteen modules. On success, a certificate of completion is issued immediately; its number is verifiable on the platform.
Free courses, by contrast, end with a 5-question quiz and a preview of the certificate, without certification.