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.