elastic/go-elasticsearch

The official Go client for Elasticsearch

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 25 minutes ago
Added to GitGenius on April 7th, 2021
Created on March 27th, 2017
Open Issues & Pull Requests: 25 (+0)
Number of forks: 643
Total Stargazers: 6,063 (+0)
Total Subscribers: 349 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 13.3 days
Mean response time: 325.3 days
90th percentile: 1371.0 days
Tracked items: 115

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 3% of issues opened in the past year have been closed. Three people close 79% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 17
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 143 days
Stale 30+ days: 14
Stale 90+ days: 8

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • State: Awaiting Response (22)
  • Category: Question (18)
  • State: Stale (18)
  • Category: Enhancement (14)
  • Category: Bug (12)
  • Area: Helpers (9)
  • tracking (8)
  • good first issue (7)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The go-elasticsearch repository is the official Go client library for Elasticsearch, maintained by Elastic. It provides Go developers with a comprehensive interface to interact with Elasticsearch clusters, supporting all major operations including index creation, document indexing and retrieval, searching, updating, and deletion. The client is written in Go and serves as a critical component in the Elastic Stack ecosystem for applications requiring search and analytics capabilities.

The library offers both low-level and typed API approaches for interacting with Elasticsearch. The typed API provides compile-time safety and better developer experience, while the low-level API offers flexibility for advanced use cases. The client includes the esutil package with convenience helpers such as JSONReader and BulkIndexer to simplify common operations like bulk indexing of documents. Additional resources include esdsl builders for constructing complex queries and comprehensive examples in the _examples folder demonstrating configuration, customization, security setup with custom certificates, transport mocking for testing, and various query patterns.

Compatibility is a key design consideration for this client. Starting from version 8.12.0, the library follows Go's official release policy, supporting each major Go release until two newer major releases are available. The client maintains forward compatibility with Elasticsearch, meaning it supports communication with greater or equal minor versions of the target Elasticsearch instance. Multiple versions of the client can coexist in a single project through Go modules, allowing developers to gradually migrate between major versions. The main branch tracks the current master branch of Elasticsearch.

The repository shares contributors with other projects including github/gh-aw, solo-io/gloo, and longhorn/longhorn, indicating cross-project collaboration within the broader ecosystem.

The client supports comprehensive CRUD operations and search functionality, with detailed documentation available on elastic.co covering getting started, configuration, API usage patterns, typed API features, and advanced topics including interceptors and observability. Installation and connection setup are documented separately to guide users through initial setup. The library is licensed under the Apache 2 license, making it suitable for both open source and commercial applications.