This repository contains the official Elasticsearch Ruby client.
elasticsearch gem is a complete Elasticsearch client which uses two separate libraries:
elastic-transport- provides the low-level code for connecting to an Elasticsearch cluster.
elasticsearch-api- provides a Ruby API for the Elasticsearch RESTful API.
Please refer to the full documentation on elastic.co for comprehensive information.
elasticsearch gem from Rubygems:
$ gem install elasticsearch
Or add it to your project's Gemfile:
gem 'elasticsearch', 'VERSION'
require 'elasticsearch' client = Elasticsearch::Client.new(log: true) # if you specify Elasticsearch host # client = Elasticsearch::Client.new url: 'http://localhost:9200', log: true client.transport.reload_connections! client.cluster.health client.search(q: 'test') # etc.
doc/examples for some practical examples.
For optimal performance, you should use a HTTP library which supports persistent ("keep-alive") connections, e.g. Patron or Typhoeus. These libraries are not dependencies of the Elasticsearch gems. Ensure you define a dependency for a HTTP library in your own application.
This repository contains these additional Ruby libraries:
elasticsearch-dsl, which provides a Ruby API for the Elasticsearch Query DSL,
Please see their respective READMEs for information and documentation.
For integration with Ruby models and Rails applications, see the elasticsearch-rails project.
We follow Ruby’s own maintenance policy and officially support all currently maintained versions per Ruby Maintenance Branches.
Language clients are forward compatible; meaning that clients support communicating with greater or equal minor versions of Elasticsearch. Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.