Elasticsearch 101

A practical series on Elasticsearch from development to production, using Go as the backend and React as the frontend. Every article is grounded in hands-on experience β€” no artificial product demos, just real integration patterns I have used in personal projects.

Why This Series

I started using Elasticsearch when a PostgreSQL LIKE query on a 2M-row table consistently took 4–8 seconds. After migrating that workload to Elasticsearch, the same search returned in under 80ms. That gap is what made me take the time to learn it properly β€” not just "how to search" but how the engine actually works, how to model data correctly, and how to avoid the pitfalls that cause mapping explosions, slow aggregations, and runaway disk usage.

This series documents what I have learned working through those problems.

Series Articles

#
Title
Summary

01

Core concepts, inverted index, cluster architecture, use-case fit

02

Local dev environment, Docker Compose, Kibana, health checks

03

Field types, explicit mappings, CRUD operations, reindexing

04

match, term, bool, range, query vs filter context, pagination

05

Metrics, buckets, date histograms, nested aggs, combining with search

06

go-elasticsearch v9, typed API, bulk indexing, structured search

07

Search hooks, proxied calls, autocomplete, faceted UI

08

ILM, aliases, API key auth, mapping discipline, monitoring

Stack

  • Elasticsearch 8.x / 9.x (self-hosted via Docker for local, Elastic Cloud for production)

  • Go 1.22+ with github.com/elastic/go-elasticsearch/v9

  • React 18+ with TypeScript

  • Docker Compose for local development

Prerequisites

  • Basic familiarity with REST APIs

  • Go modules (go mod)

  • Docker Desktop or equivalent container runtime

  • Node.js 20+ for the React portions

References

Last updated