This repository contains the official Elasticsearch Ruby client. The 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.
Both elastic-transport
and elasticsearch-api
are documented. You can check
the elastic-transport
and the elasticsearch-api
documentation at RubyDocs.
gem install elasticsearch
Refer to the Installation section of the getting started documentation.
Refer to the Connecting section of the getting started documentation.
require 'elasticsearch'
client = Elasticsearch::Client.new(host: 'https://my-elasticsearch-host.example')
client.ping
client.search(q: 'test')
- Creating an index
- Indexing a document
- Getting documents
- Searching documents
- Updating documents
- Deleting documents
- Deleting an index
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:
elasticsearch-rails
- integration with Ruby models and Rails applications.elasticsearch-extensions
, deprecated.elasticsearch-dsl
which provides a Ruby API for the Elasticsearch Query DSL.
Please see their respective READMEs for information and documentation.
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.
See CONTRIBUTING.
This software is licensed under the Apache 2 license. See NOTICE.