The official Java client for Elasticsearch.
The Java client for Elasticsearch provides strongly typed requests and responses for all Elasticsearch APIs. It delegates protocol handling to an http client such as the Elasticsearch Low Level REST client that takes care of all transport-level concerns (http connection establishment and pooling, retries, etc).
The docs/design
folder contains records of the major decisions in the design of the API. Most notably:
null
with @Nullable
annotations instead of the newer Optional
, the Java ecosystem being still very null-based.Download the latest version of Elasticsearch or sign-up for a free trial of Elastic Cloud.
Refer to the Installation section of the getting started documentation.
Refer to the Connecting section of the getting started documentation.
The Elasticsearch client is compatible with currently maintained Java versions.
The Java client is forward compatible; meaning that the client supports communicating with greater or equal minor versions of Elasticsearch without breaking. It does not mean that the client automatically supports new features of newer Elasticsearch versions; it is only possible after a release of a new client version. For example, a 8.12 client version won't automatically support the new features of the 8.13 version of Elasticsearch, the 8.13 client version is required for that. Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.
Elasticsearch Version | Elasticsearch-Java Branch | Supported |
---|---|---|
main | main | |
8.x | 8.x | 8.x |
7.x | 7.x | 7.17 |
Please refer to the full documentation on elastic.co for comprehensive information.
See CONTRIBUTING.md
This software is licensed under the Apache License 2.0.