Low level client VS high level client API

What is the difference between low level client and high level client in Elasticsearch?

I think you are talking about the REST client which is a low level one.

Basically in Java you will write (pseudocode):

  String json = execute("PUT", "/index/_mapping", "{}");

With a high level client (see for example the TransportClient), you can write something like:

  MappingResponse resp = putMapping("index").addMapping("{}").get();

Thanks @dadoonet. I got my confusion clarified.

The other difference is that there doesn't yet exist a high level, REST based client for Java. The transport client is a high level client but it isn't REST. It uses Elasticsearch's internal protocol and requires pulling in most of Elasticsearch's code as a dependency.