The ClojureWerkz Blog

News and updates about ClojureWerkz projects

Elastisch 1.0: A Minimalistic, Well Documented Clojure Client for ElasticSearch

Elastisch 1.0 is here!


Elastisch 1.0 is a battle tested minimalistic feature rich and well documented client for ElasticSearch. It supports virtually every Elastic Search feature and has solid documentation that covers Elastic Search and Lucene concepts and terminology as well as the actual library.

After 10 months of work, several alphas, betas and two RCs, Elastisch is ready to go 1.0.

What’s In The Box

Here’s what Elastisch supports out of the box:

  • Complete support for indexing operations
  • (Almost) complete support for querying, with the exception of multi-search
  • Support for all the query and filter types
  • Straightforward and consistent API that closely follows ElasticSearch REST API
  • Solid documentation (our favorite feature)
  • Facets (faceted search)
  • Percolation support
  • Administrative operations on indexes

To our knowledge, the only feature Elastisch does not support yet is multi-search, which is used relatively rarely. Minimalistic does not have to mean primitive: Elastic Search has many features and Elastisch users should be able to easily benefit from them.

Learn more in the Getting Started guide and the rest of the docs.


Solid documentation is one of the goals of ClojureWerkz libraries and Elastisch is no exception. We believe that documentation guides are more important than API reference because they are useful to people with all levels of expertise. Elastic Search’s own documentation is not bad but very reference-oriented. So for Elastisch, we took extra time to delay the 1.0 release and write more detailed guides that introduce you to concepts, terminology, the analysis process, many query types and other numerous features Elastic Search has:

  • Getting Started guide is a typical Getting Started guide with brief introductions, code examples and links to documents that provide more information.
  • Mapping and Indexing guide covers many topics related to indexing, analysis, analyzers, mapping types
  • Querying guide covers querying, types of queries, filters, and so on
  • Facets guide covers faceted search, what it is good for, what Elastic Search has to offer and how to use it with Elastisch
  • Percolation guide covers many things related to percolation

We hope this content will be useful as an intro to Elastic Search concepts for developers working in languages other than Clojure and eventually can be used for Elastic Search’s own doc guides.

We would like to thank Karel Minarik (the author of Tire) for proof-reading early versions of the guides and Clinton Gormeley for Elastic::Model docs that we secretly have been stealing bits and ideas from. The Elastic Search community is very nice and the feedback from other client library maintainers helped us improve Elastisch a lot.

Development, Issue Tracking, Supported Clojure Versions

Elastisch targets Clojure 1.3+ and tested against 3 Clojure versions (1.4, 1.3, 1.5-master-SNAPSHOT) x 3 JDKs on

The source is available on GitHub. We also use GitHub to track issues. If you want to contribute, there is a section on our workflow in the README.


Elastisch is released under the Eclipse Public License, the same as Clojure.

News and Updates

New releases and updates are announced on Twitter. Elastisch also has a mailing list, feel free to ask questions and report issues there.

Elastisch is a ClojureWerkz Project

Elastisch is part of the group of libraries known as ClojureWerkz, together with

  • Welle, a Riak client with batteries included
  • Monger, a Clojure MongoDB client for a more civilized age
  • Neocons, a client for the Neo4J REST API
  • Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
  • Quartzite, a powerful scheduling library

and several others. If you like Elastisch, you may also like our other projects.

Let us know what you think on Twitter or on the Clojure mailing list.

The ClojureWerkz Team