elasticsearch library provides a Ruby client and API for Elasticsearch.
- Pluggable logging and tracing
- Pluggable connection selection strategies (round-robin, random, custom)
- Pluggable transport implementation, customizable and extendable
- Pluggable serializer implementation
- Request retries and dead connections handling
- Node reloading (based on cluster state) on errors or on demand
- Consistent API support for the whole Elasticsearch API
- Extensive documentation and examples
- Emphasis on modularity and extendability of both the client and API libraries
(For integration with Ruby models and Rails applications, see the https://github.com/elasticsearch/elasticsearch-rails project.)
The Elasticsearch client for Ruby is compatible with Ruby 1.9 and higher.
The client's API is compatible with Elasticsearch's API versions from 0.90 till current, just use a release matching major version of Elasticsearch.
Install the package from Rubygems:
gem install elasticsearch
To use an unreleased version, either add it to your
Gemfile for Bundler:
gem 'elasticsearch', git: 'git://github.com/elasticsearch/elasticsearch-ruby.git'
or install it from a source code checkout:
git clone https://github.com/elasticsearch/elasticsearch-ruby.git cd elasticsearch-ruby/elasticsearch bundle install rake install
This library is a wrapper for two separate libraries:
elasticsearch-transport, which provides a low-level Ruby client for connecting to an Elasticsearch cluster
elasticsearch-api, which provides a Ruby API for the Elasticsearch RESTful API
elasticsearch package and use the API directly:
require 'elasticsearch' client = ::. log: true client.cluster.health client.transport.reload_connections! client.search q: 'test' # etc.
Please refer to the specific library documentation for details:
You can run
rake -T to check the test tasks. Use
COVERAGE=true before running a test task to check the coverage with Simplecov.
This software is licensed under the Apache 2 license.