Now and then, devs participating in technical conferences, meetups ask me, "How do I learn Elasticsearch?" or "Where do I start learning Elasticsearch?"
There are so many useful resources out there, either from the Developer Community or the official site. But it varies according to your profile.
In this blog, I'll try to summarize the learning path.
First, you need to know the ecosystem of other projects (Elastic Stack) that completes your Elasticsearch experience.
Elasticsearch is not a relational database but a full-text search engine used as a NoSQL datastore.
Step 1: Learning the terms and distributed nature
Elasticsearch is a distributed system. There are concepts like Cluster, Nodes, Shards, Replicas, Cluster Co-ordination layer, and their settings, which are essential to understand the system's working further. There are many terms like Index, fields, mappings.
- Docs: What is Elasticsearch?, Glossary of terms (not exhaustive!), Discovery and cluster formation, Configuring Elasticsearch, Distributed Nature (old but relevant!)
- Videos: Terms
You can get this gist also in Getting Started with Elasticsearch
Step 2: Learning the APIs
The API-oriented nature helped Elasticsearch integrate with several other systems, be it a SaaS service like PagerDuty, ServiceNow, or other open-source systems like Prometheus, Beats Logstash.
Almost all features have APIs, and every API is linked to a concept like Aggregations, Index Lifecycle Management.
- Docs: Query DSL, Aggregations, REST APIs
Step 3: Learning how to manage & monitor
Monitoring the system which monitors your infrastructure sounds like inception! Elasticsearch comes with a monitoring UI in Kibana, and it can alert you about cluster load and various other issues. You can also manage the indices with Index lifecycle management or look at multiple metrics like searches per minute, latency, heap & CPU utilization.
Docs: Monitoring Elasticsearch.
Video: Monitoring your Elasticsearch clusters (Old video, but gives you an idea!).
These steps help you get started with Elasticsearch, a minimal plan to understand the overall system. Many users might use Elasticsearch to build a centralized logging/auditing system, Observability system, to create a search engine, or a threat hunting solution.
There are Quick Start tutorials for some of these if you like to spend some time and complete a course.
If you have more questions, feel free to connect/DM me on Twitter at aravindputrevu. I write, share articles about tech on Twitter and Linkedin