Overview of elastic4s
series/9.xelastic4s is a concise, idiomatic, reactive, and type-safe Scala client for Elasticsearch. It provides a DSL that allows for programmatic request construction with compile-time error checking.
Key features include:
- Type-safe DSL: Requests are built using a builder-like pattern similar to the Java or REST APIs, but optimized for Scala.
- Asynchronous Integration: Uses standard Scala
Futures to integrate into asynchronous workflows. - Scala Idioms: Uses Scala collections instead of Java collections, returns
Optioninstead ofnull, and usesscala.concurrent.duration.Durationfor time values. - JSON Typeclass Support: Supports automatic indexing, updating, and searching of domain classes via typeclasses for Jackson, Circe, Json4s, PlayJson, and Spray Json.
- HTTP Client Support: Compatible with both Java and Scala HTTP clients, such as Akka-Http.
- Reactive Streams: Provides a reactive-streams implementation.
- Testkit: Includes a
testkitsubproject designed for testing Elasticsearch interactions.