[[java-rest-high-usage]]
=== Getting started
[[java-rest-high-usage-maven]]
==== Maven Repository
The high-level Java REST client is hosted on
http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.elasticsearch.client%22[Maven
Central]. The minimum Java version required is `1.8`.
The high-level REST client is subject to the same release cycle as
elasticsearch. Replace the version with the desired client version.
[[java-rest-high-usage-maven-maven]]
===== Maven configuration
Here is how you can configure the dependency using maven as a dependency manager.
Add the following to your `pom.xml` file:
["source","xml",subs="attributes"]
--------------------------------------------------
org.elasticsearch.client
rest-high-level
{version}
--------------------------------------------------
[[java-rest-high-usage-maven-gradle]]
===== Gradle configuration
Here is how you can configure the dependency using gradle as a dependency manager.
Add the following to your `build.gradle` file:
["source","groovy",subs="attributes"]
--------------------------------------------------
dependencies {
compile 'org.elasticsearch.client:rest-high-level:{version}'
}
--------------------------------------------------
[[java-rest-high-usage-dependencies]]
==== Dependencies
The high-level Java REST client depends on the following artifacts and their
transitive dependencies:
- org.elasticsearch.client:rest
- org.elasticsearch:elasticsearch
[[java-rest-high-usage-initialization]]
==== Initialization
A `RestHighLevelClient` instance needs a <>
to be built as follows:
[source,java]
--------------------------------------------------
RestHighLevelClient client =
new RestHighLevelClient(lowLevelRestClient); <1>
--------------------------------------------------
<1> We pass the <> instance
In the rest of this documentation about the high-level client, the `RestHighLevelClient` instance
will be referenced as `client`.
Then you have access to the high level APIs such as:
include::apis.asciidoc[]
Each API can be executed synchronously (i.e. <>) or
asynchronously (i.e. <>).
The asynchronous APIs require a listener that is called on thread pool managed by the low level client
when the response is received.