Creating a native client
There are two ways to create a native client in order to communicate with an ElasticSearch server:
- Creating a client node (a node that doesn't contain data, but works as an arbiter) and getting the client from it. This node will appear in the cluster state nodes and it's able to use the discovery capabilities of ElasticSearch to join the cluster (so no node address is required to connect to a cluster). This client is able to reduce node routing due to its knowledge of cluster topology.
- Creating a transport client, which is a standard client that requires the address and port of nodes to connect.
In this recipe we will see how to create these clients.
Getting ready
You will need a working ElasticSearch cluster and a working copy of Maven.
The code of this recipe is in chapter_10/nativeclient
in the code bundle available on Packt's website and on GitHub (https://github.com/aparo/elasticsearch-cookbook-second-edition).
How to do it...
To create a native client...