Skip to content

elastic/elasticsearch-java

Folders and files

NameName
Last commit message
Last commit date
Feb 17, 2025
Mar 18, 2025
Feb 26, 2025
Nov 8, 2022
Feb 19, 2025
Mar 24, 2025
Mar 26, 2024
Jan 23, 2025
Nov 7, 2022
Mar 20, 2025
Jan 18, 2022
Aug 11, 2023
Apr 14, 2022
Jun 1, 2021
Jun 2, 2021
Jun 2, 2021
Nov 13, 2024
Mar 18, 2025
Feb 13, 2025
Nov 7, 2022
Nov 7, 2022
Mar 18, 2025

Repository files navigation

Elastic logo

Elasticsearch Java Client

Elasticsearch is a distributed, RESTful search engine optimized for speed and relevance on production-scale workloads. You can use Elasticsearch to perform real-time search over massive datasets for applications including Vector search, Full-text search, Logs, Metrics, Application Performance Monitoring, Security Logs and more !

This repo has 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:

  • Object construction is based on the builder pattern.
  • Nested objects can be constructed with builder lambdas, allowing for clean and expressive DSL-like code.
  • Optional values are represented as null with @Nullable annotations instead of the newer Optional, the Java ecosystem being still very null-based.

Installation

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.

Connecting

Refer to the Connecting section of the getting started documentation.

Compatibility

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

Usage

Documentation

Please refer to the full documentation on elastic.co for comprehensive information.

Contributing

See CONTRIBUTING.md

Licence

This software is licensed under the Apache License 2.0.