Many programming languages (including Java, Python, and .NET) have official clients written and supported by Elasticsearch (https://www.elastic.co/guide/en/elasticsearch/client/index.html). However, by default, only two protocols are really supported, HTTP (via a RESTful API) and native. You can talk to Elasticsearch via one of the following ways:
- Transport client: One of the native ways to connect to Elasticsearch.
- Node client: Similar to the transport client. In most cases, if you're using Java, you should choose the transport client instead of the node client.
- HTTP client: For most programming languages, HTTP is the most common way to connect to Elasticsearch.
- Other protocols: It's possible to create a new client interface to Elasticsearch simply by writing a plugin.
Transport clients (that is, the Java API) are scheduled to be deprecated...