A simple, no-nonsense Elasticsearch client for Elixir with zero-downtime indexing and development tools.
Elasticsearch for Elixir is a client library that enables Elixir applications to interact with Elasticsearch clusters. It provides a direct, no-DSL approach to the Elasticsearch JSON API and includes tooling for zero-downtime index rebuilding and local development. The library solves the problem of integrating full-text search and data indexing into Elixir systems with production-ready features.
Elixir developers building applications that require full-text search, log aggregation, or data analytics using Elasticsearch. It's particularly useful for teams needing reliable indexing strategies and development environment tooling.
Developers choose this library for its simplicity and powerful utilities—it avoids complex DSLs, offers zero-downtime index rebuilding, and includes dev tools like executable supervision. Its pluggable architecture allows custom stores and API modules, making it adaptable for testing, AWS, or other integrations.
No-nonsense Elasticsearch library for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses raw JSON or maps for queries, avoiding DSLs and keeping developers close to Elasticsearch's native API, as emphasized in the README's philosophy.
Includes the mix elasticsearch.build task for hot-swapping indexes with aliases, enabling safe reindexing in production without downtime.
Provides Elasticsearch.Executable to run Elasticsearch and Kibana within the supervision tree, simplifying local development and testing workflows.
Supports custom Store behaviours for data fetching and API modules for mocking or AWS integration, offering flexibility for different environments.
Requires setting up Elasticsearch.Store and Elasticsearch.Document protocols, adding boilerplate code and initial development time before use.
Limited support for Elasticsearch 5.x, forcing index designs to follow 6.x style, which may require adaptations for older clusters.
Index setup involves multiple parameters like stores, sources, and bulk settings, which can be overwhelming for simple or quick deployments.