ElasticSearch ruby client. Credit goes to my coworkers at GitHub, I just turned it into a gem.
Add to Gemfile
gem 'elasticsearch-client', :require => 'elasticsearch'
Create connection:
index = 'twitter'
url = 'https://localhost:9200'
es = ElasticSearch::Index.new(index, url)
Index a document:
type = 'tweet'
doc = {:id => 'abcd', :foo => 'bar'}
es.add(type, doc[:id], doc)
Get a document:
id = '1234'
es.mget(type, [id])
Get documents:
id2 = 'abcd'
es.mget(type, [id, id2])
Search:
query = {
:query => {
:bool => {
:must => {
:query_string => {
:default_field => '_all',
:query => 'foobar!',
}
}
}
}
}
es.search(type, query)
Remove record:
es.remove(type, id)
Remove by query:
es.remove_by_query(type, :term => {:foo => 'bar'})
Remove all of type:
es.remove_all(type)
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so we don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine, but bump version in a commit by itself so we can ignore when we pull)
- Send us a pull request. Bonus points for topic branches.