You can use the Java client in multiple ways:

  • Perform standard index, get, delete and search operations on an existing cluster
  • Perform administrative tasks on a running cluster
  • Start full nodes when you want to run Elasticsearch embedded in your own application or when you want to launch unit or integration tests

Obtaining an elasticsearch Client is simple. The most common way to get a client is by:

  1. Creating an embedded Node that acts as a node within a cluster.
  2. Requesting a Client from your embedded Node.

Another manner is by creating a TransportClient that connects to a cluster.


The client must have the same major version (e.g. 2.x, or 5.x) as the nodes in the cluster. Clients may connect to clusters which have a different minor version (e.g. 2.3.x) but it is possible that new funcionality may not be supported. Ideally, the client should have the same version as the cluster.