Skip to content

elastic/elasticsearch-ruby

Folders and files

NameName
Last commit message
Last commit date
Feb 8, 2022
Feb 28, 2022
Jun 7, 2021
Feb 28, 2022
Mar 1, 2022
Feb 10, 2022
Apr 27, 2021
Jan 27, 2022
Feb 13, 2019
Nov 18, 2020
Jun 4, 2021
Feb 28, 2022
Dec 15, 2021
Jan 11, 2022
Oct 8, 2021
Jul 31, 2019
Dec 15, 2021
Jan 11, 2022
Jan 11, 2022

Elasticsearch

This repository contains the official Elasticsearch Ruby client.

6.x 7.16 7.17 8.0 main

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 also documented. You can check the elastic-transport and the elasticsearch-api documentation at RubyDocs.

Installation

Install the elasticsearch gem from Rubygems:

$ gem install elasticsearch

Or add it to your project's Gemfile:

gem 'elasticsearch', 'VERSION'

Usage example

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.

See also 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. Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.

Development

See CONTRIBUTING.

License

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