Elasticsearch ist eine verteilte Such- und Analysemaschine auf Basis von Apache Lucene (Shay Banon, seit 2010). Daten werden als JSON-Dokumente in Indizes gespeichert und über einen invertierten Index blitzschnell durchsucht. Die eigentliche Arbeit läuft über die REST-API auf Port 9200; die Kommandozeilen-Tools im bin/-Verzeichnis (meist /usr/share/elasticsearch/bin) dienen der Administration.

Wichtige bin-Tools

  • elasticsearch: startet einen Node — elasticsearch -d als Daemon, -p pidfile schreibt die Prozess-ID
  • elasticsearch-keystore: verwaltet verschlüsselte Einstellungen — create, add, list, remove (Passwörter, API-Keys)
  • elasticsearch-plugin: Erweiterungen installieren/auflisten/entfernen — elasticsearch-plugin install analysis-icu
  • elasticsearch-node / elasticsearch-shard: reparieren beschädigte Shards oder entfernen korrupte Daten
  • elasticsearch-certutil: erzeugt TLS-Zertifikate, elasticsearch-users verwaltet native Benutzer und Rollen

REST-API mit curl

curl -X GET 'localhost:9200/_cat/indices?v'
curl -X PUT 'localhost:9200/produkte'
curl -X POST 'localhost:9200/produkte/_doc' -H 'Content-Type: application/json' -d '{"name":"Kaffee","preis":12.5}'
curl 'localhost:9200/produkte/_search?q=kaffee'

Die _cat-Endpunkte liefern kompakte Tabellen (Indizes, Nodes, Shards), _search führt Suchanfragen aus. Für komplexere Abfragen schickt man das Query DSL als JSON-Body — etwa boolesche Kombinationen, Filter oder Aggregationen.

Praxis-Tipps

  • Ein Index ist in Shards aufgeteilt (Primär- und Replica-Shards) — das ermöglicht horizontale Skalierung.
  • Ab Version 8 sind Sicherheit (TLS, Passwörter) und der Keystore standardmäßig aktiv.
  • Logstash übernimmt das Einsammeln, Kibana die Visualisierung — zusammen der ELK-Stack.

Verwandte Grundlagen: MongoDB-Befehle, CouchDB-Befehle, Cassandra-Befehle, InfluxDB-Befehle, ClickHouse-Befehle, curl/wget-Befehle, YAML/TOML/JSON-Befehle.