RubberBand

An ElasticSearch client with ThriftClient-like failover handling.

License

Copyright 2010-2011 Grant Rodgers. See included LICENSE file.

Features

  • Automatic failover, retry, and peer discovery

  • Support for multiple transports (HTTP, Thrift, Memcached TODO)

  • Support for multiple encodings (JSON (Yajl), Smile TODO)

Usage

Instantiate a client:

client = ElasticSearch.new('127.0.0.1:9200', :index => "twitter", :type => "tweet")

Instantiate a client with multiple servers:

client = ElasticSearch.new(['127.0.0.1:9200', '127.0.0.1:9201'])

Instantiate a client using a Heroku URL (this sets the default index):

client = ElasticSearch.new(ENV['ELASTICSEARCH_URL'])

API:

client.index({:body => "elasticsearch is cool"}, :id => 1)
client.get("1")
client.search("body:elasticsearch")

TODO

See TODO file.

Contributing

github.com/grantr/rubberband

Fork, code, send pull request