Elastic - Elasticsearch-Client für Go
Inoffizieller Elasticsearch-Client für Go mit über 7.500 GitHub-Stars, seit 2012 im Produktiveinsatz.
- Go
- Elasticsearch
2012 gab es keinen Elasticsearch-Client für Go, also haben wir einen
geschrieben. olivere/elastic blieb fast ein Jahrzehnt lang die Standardwahl
für Go-Anwendungen, die mit Elasticsearch sprechen, bis Elastic einen eigenen
offiziellen Treiber veröffentlichte. Bis dahin hatte die Bibliothek 7.500 Stars
und 1.200 Forks auf GitHub, und sie lief die ganze Zeit produktiv, bei uns und
bei anderen.
Ein Jahrzehnt Schritt halten
Elasticsearch hat seine API mit jeder Hauptversion geändert, von 0.90 bis 7.x, und ein Client, der hinterherhinkt, ist schlimmer als keiner. Jede Hauptversion bekam eine eigene Bibliotheksversion mit stabiler, idiomatischer Go-API, und die älteren liefen weiter für alle, die noch nicht umsteigen konnten. Ob die Verbreitung der Bibliothek der Grund war, dass Elastic irgendwann einen offiziellen Go-Client baute, können wir nicht beweisen. Der Zeitpunkt passt.
Was abgedeckt ist
Das Ziel war die ganze API, nicht die bequeme Hälfte:
- die Query-DSL: Match, Term, Bool, Nested, Function Score und der Rest
- Aggregationen: Bucket, Metrics und Pipeline
- Indexverwaltung: Mappings, Settings, Templates
- Bulk-Operationen, Scroll, Reindex, Update-by-Query
- Snapshot und Restore, Ingest-Pipelines, Task-Management
- X-Pack: Security, Monitoring, Watcher
MIT-lizenziert, mit Beiträgen aus der Community, die sie benutzt hat.