Skip to content

SYSTEM Cited by 1 source

Elasticsearch Java API Client

Elasticsearch Java API Client is Elastic's officially-supported Java client for Elasticsearch 8.x, introduced alongside Elasticsearch 7.15.0 when the High Level REST Client (HLRC) was deprecated. It ships a fluent typed DSL that covers the REST API surface including the 8.0-introduced approximate kNN search (the surface that the unofficial elastic4s Scala client explicitly did not cover in 2023).

Positioning vs alternatives

Client Tracks ES release cadence kNN DSL Idiomatic for Scala License
Elasticsearch Java API Client Yes (official) Yes No (Java-typed collections, nulls) Apache-2.0
HLRC (7.17, deprecated) Stopped at 7.17 No (pre-dates 8.0) No Apache-2.0
elastic4s Lags (ES 8.7 vs lib 8.5.4 in 2023) No (as of mid-2023) Yes Apache-2.0

The official client gives up Scala ergonomics — Option-returning APIs, Scala Duration, immutable collections — in exchange for release-cadence parity and DSL coverage of new REST features.

Seen in

Compatibility-mode handoff

The client supports a compatibility mode: an application can continue running the 7.17 HLRC against an 8.x cluster with Accept: application/vnd.elasticsearch+json;compatible-with=7, giving operators a way to decouple cluster upgrade from client upgrade. See patterns/compatibility-mode-client-transition.

Gaps in the wiki record

  • No Zalando-disclosed performance comparison (serialization / deserialization / throughput) between HLRC, elastic4s, and the new Java client.
  • No disclosure of the Origami migration effort (engineer-months, PR count, incident count during gradual swap).
  • No kNN index throughput or recall/latency trade-off numbers.
Last updated · 501 distilled / 1,218 read