A long-lived project that still receives updates
Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Project Readme

Elasticsearch

7.17 8.15 8.16 main Build status

Download the latest version of Elasticsearch or sign-up for a free trial of Elastic Cloud.

This repository contains the official Elasticsearch Ruby client. The elasticsearch gem is a complete Elasticsearch client which uses two separate libraries:

Documentation

Please refer to the full documentation on elastic.co for comprehensive information.

Both elastic-transport and elasticsearch-api are documented. You can check the elastic-transport and the elasticsearch-api documentation at RubyDocs.

Installation

gem install elasticsearch

Refer to the Installation section of the getting started documentation.

Connecting

Refer to the Connecting section of the getting started documentation.

Usage

require 'elasticsearch'
client = Elasticsearch::Client.new(host: 'https://my-elasticsearch-host.example')
client.ping
client.search(q: 'test')

Refer to the official documentation for examples of how to use the most frequently called APIs and 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.

Check out these other official Ruby libraries for working with Elasticsearch:

Please see their respective READMEs for information and documentation.

Compatibility

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 without breaking. It does not mean that the client automatically supports new features of newer Elasticsearch versions; it is only possible after a release of a new client version. For example, a 8.12 client version won't automatically support the new features of the 8.13 version of Elasticsearch, the 8.13 client version is required for that. Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.

Gem Version Elasticsearch Version Supported
7.x 7.x 7.17
8.x 8.x 8.x
main main

Development

See CONTRIBUTING.

License

This software is licensed under the Apache 2 license. See NOTICE.