Elasticsearch client and query DSL for Haskell

Why?

Endorsements

"ES is a nightmare but Bloodhound at least makes it tolerable." - Same user, later opinion.

Version compatibility

As of version 0.13.0.0, Bloodhound has 2 separate module trees for
Elasticsearch versions 1 and 5. Import the module that is appropriate
for your use case. If you would like to add support for another major
version, open a ticket expressing your intend and follow the pattern
used for other versions. We weighed the idea of sharing code between
versions but it just got too messy, especially considering the
instability of the Elasticsearch API. We switched to a model which
would allow the persons responsible for a particular protocol version
to maintain that version while avoiding conflict with other versions.

See our TravisCI for a
listing of Elasticsearch version we test against.

Stability

Bloodhound is stable for production use. I will strive to avoid breaking API compatibility from here on forward, but dramatic features like a type-safe, fully integrated mapping API may require breaking things in the future.

Testing

The TravisCI tests are run using Stack. You should use Stack instead of cabal to build and test Bloodhound to avoid compatibility problems. You will also need to have an Elasticsearch instance running at localhost:9200 in order to execute some of the tests. See the "Version compatibility" section above for a list of Elasticsearch versions that are officially validated against in TravisCI.

Steps to run the tests locally:

Dig through the past releases section of the Elasticsearch download page and install the desired Elasticsearch versions.

Start the desired version of Elasticsearch at localhost:9200, which should be the default.

Run stack test in your local Bloodhound directory.

The unit tests will pass if you re-execute stack test. If you want to start with a clean slate, stop your Elasticsearch instance, delete the data/ folder in the Elasticsearch installation, restart Elasticsearch, and re-run stack test.

Photo Origin

About
Your go-to Haskell Toolbox.
Our goal is to help you find the software and libraries you need.
Made by developers for developers.
The collection of libraries and resources is based on the
Awesome Haskell List and direct contributions here.
To add a new package, please, check the contribute section.