Elasticsearch Library for Crystal Lang. Heavily inspired by Ruby Elasticsearch Library.
dependencies:
elasticsearch-crystal:
github: paktek123/elasticsearch-crystal
version: ~> 0.11
require "elasticsearch-crystal/elasticsearch/api"
client = Elasticsearch::API::Client.new({:host => "localhost", :port => 9250})
# create an index
client.indices.create({:index => "test_index", :body => {"mappings" => {"type_1" => {} of String => String}}})
client.cat.indices
# For getting back JSON
client.cat.indices({:format => "json"}).as(JSON::Any)
For more example see under the test
folder
Right now this although covers most of the Elasticsearch API, still lacks certain functionality. The next features will be driven by community demand.
- Make the repo more 'Crystal' Lang style, it follows ruby conventions or no conventions at all right now
- Code is a bit repetitive in places
- Same functionality as the Ruby Elasticsearch Library
Although there is a test suite of Elasticsearch there are bound to be many bugs. Please raise an issue with steps to reproduce and any stack traces. Contributions are welcome to fix.
Contributions are welcome!
-
Run a local Elasticsearch on port 9250:
docker run -d -p 9250:9200 elasticsearch:5.2
-
Run the test suite interested in
crystal spec test/integation/cat/*
-
Fork the repo and work on your feature in a branch
-
Make a PR