Elastisch is a minimalistic Clojure client for Elasticsearch, a modern distributed search engine.
- Be reasonably feature complete
- Be well documented
- Be well tested
- Closely follow Elasticsearch API structure, no new abstractions introduced
- Support multiple transports: HTTP, native ES client, possibly more (e.g. Memcached)
- Follow recent Elasticsearch releases & developments
Elastisch has a mailing list. Feel free to join it and ask any questions you may have.
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
Elastisch is a not a young project. Started in late 2011, it has been used in production since the early days. Elastisch API is stable. 1.0 was released in September 2012, 2.0 in June 2014, 3.0 in December 2018.
Elastisch 6.x (main
) targets ElasticSearch 6.x
Elastisch 3.x focuses on Elasticsearch 2.x support.
Elastisch artifacts are released to Clojars.
If you are using Maven, add the following repository definition to your pom.xml
:
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</url>
</repository>
Note: Elastisch documentation is not currently updated for version 3.0.
With Leiningen:
[clojurewerkz/elastisch "3.0.1"]
With Maven:
<dependency>
<groupId>clojurewerkz</groupId>
<artifactId>elastisch</artifactId>
<version>3.0.1</version>
</dependency>
Please see our documentation guides site. Note: Elastisch documentation is not currently updated for version 3.0.
Our test suite also has many code examples.
Elastisch requires Clojure 1.6. The most recent stable release is highly recommended.
Elastisch 2.1 and 2.2 target Elasticsearch 1.x starting with 1.1 and through 1.7.x. Elastisch master provides Elasticsearch 3.x compatibility but not every ElasticSearch 3.0+ feature.
ElasticSearch 5.0 support will be available in a future version.
Elastisch provides HTTP and native (transport) clients with nearly
identical API as of 1.1.0
.
Elastisch is part of the group of Clojure libraries known as ClojureWerkz, together with
and several others.
Elastisch needs Elasticsearch running locally (127.0.0.1
). ES_CLUSTER_NAME
need to be exported
with the name of the local cluster. To find it out, use
curl http://localhost:9200/_nodes/cluster
To run Elastisch tests, make sure you have Elasticsearch running. It must be the same version that Elastisch depends on due to binary protocol changes between releases. project.clj or project page on Clojars can help find that out.
Finally, run all tests with
lein all test
To run only HTTP client tests, use
lein all test :ci
Elastisch uses Leiningen 2. Make sure you have it installed and then run tests against all supported Clojure versions using
lein all test
Then create a branch and make your changes on it. Once you are done with your changes and all tests pass, submit a pull request on GitHub.
Copyright (c) 2011-2024 Alex Petrov, Michael S. Klishin, and the ClojureWerkz Team.
Double-licensed under the Eclipse Public License (the same as Clojure) and Apache Public License 2.0.