Elasticsearch high level rest client deprecated

Opster Team



The Elasticsearch High Level REST Client, which was a popular choice for interacting with Elasticsearch clusters, has been deprecated since version 7.7.0. In this article, we will discuss the reasons behind this deprecation, the alternatives available, and how to migrate to a new client.

Reasons for Deprecation

The High Level REST Client was designed to provide a Java API for communicating with Elasticsearch using RESTful APIs. However, it had some limitations and issues that led to its deprecation:

  1. Maintenance: The High Level REST Client required constant updates to keep up with the changes in Elasticsearch APIs, making it difficult to maintain.
  2. Compatibility: It was tightly coupled with Elasticsearch’s internal data structures, which made it challenging to ensure compatibility across different versions.
  3. Flexibility: The client was not as flexible as desired, making it difficult to extend or customize its functionality.

Alternatives to the High Level REST Client

With the deprecation of the High Level REST Client, Elasticsearch recommends using one of the following alternatives:

  1. Elasticsearch Java REST Client: This is the official low-level client for Elasticsearch, which allows you to interact with the REST APIs directly. It provides better flexibility and is easier to maintain, but requires more manual work when constructing and parsing requests and responses.
  2. OpenSearch Java Client: OpenSearch, a fork of Elasticsearch, provides its own Java client that is compatible with Elasticsearch 7.x. This client is similar to the deprecated High Level REST Client and can be used as a drop-in replacement in most cases.

Migrating to a New Client

To migrate from the deprecated High Level REST Client to one of the alternatives, follow these steps:

  1. Update dependencies: Replace the dependency for the High Level REST Client with the appropriate alternative in your build configuration (e.g., Maven or Gradle).
  2. Refactor code: Update your code to use the new client’s API. This may involve changing the way you construct requests, handle responses, and manage connections.

    For the Elasticsearch Java REST Client, you will need to manually create request objects, execute them using the RestClient or RestHighLevelClient classes, and parse the responses.

    For the OpenSearch Java Client, the migration process should be relatively straightforward, as the API is similar to the deprecated High Level REST Client. However, you may need to update package imports and make minor adjustments to your code.
  3. Test and verify: Thoroughly test your application to ensure that it works correctly with the new client. Pay special attention to areas where you have made significant changes during the refactoring process.


The deprecation of the Elasticsearch High Level REST Client may require some adjustments to your existing applications, but the alternatives provide more flexibility, better compatibility, and easier maintenance. By following the migration steps outlined in this article, you can ensure a smooth transition to a new client and continue leveraging the powerful capabilities of Elasticsearch or OpenSearch.

Next step

Opster AutoOps and the Opster Support Team can assist you in transitioning from the deprecated Elasticsearch High Level REST Client to the new Java REST Client. With their expertise, you’ll be able to smoothly adapt your code and maintain optimal performance in your Elasticsearch environment.


Analyze your cluster & get personalized recommendations

Skip to content