Elasticsearch Elasticsearch High Level REST Client Deprecated

By Opster Expert Team - May 2023

Updated: May 22, 2023

| 2 min read

Quick Links


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, Elastic 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.10. 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

How to migrate from the deprecated High Level REST Client in Elasticsearch to one of the alternatives

  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.

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?