= Java API include::{elasticsearch-root}/docs/Versions.asciidoc[] [[java-api]] [preface] == Preface deprecated[7.0.0, The `TransportClient` is deprecated in favour of the {java-rest}/java-rest-high.html[Java High Level REST Client] and will be removed in Elasticsearch 8.0. The {java-rest}/java-rest-high-level-migration.html[migration guide] describes all the steps needed to migrate.] This section describes the Java API that Elasticsearch provides. All Elasticsearch operations are executed using a <> object. All operations are completely asynchronous in nature (either accepts a listener, or returns a future). Additionally, operations on a client may be accumulated and executed in <>. Note, all the APIs are exposed through the Java API (actually, the Java API is used internally to execute them). == Javadoc The javadoc for the transport client can be found at {transport-client-javadoc}/index.html. == Maven Repository Elasticsearch is hosted on http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.elasticsearch.client%22[Maven Central]. For example, you can define the latest version in your `pom.xml` file: ["source","xml",subs="attributes"] -------------------------------------------------- org.elasticsearch.client transport {version} -------------------------------------------------- [[java-transport-usage-maven-lucene]] === Lucene Snapshot repository The very first releases of any major version (like a beta), might have been built on top of a Lucene Snapshot version. In such a case you will be unable to resolve the Lucene dependencies of the client. For example, if you want to use the `6.0.0-beta1` version which depends on Lucene `7.0.0-snapshot-00142c9`, you must define the following repository. For Maven: ["source","xml",subs="attributes"] -------------------------------------------------- elastic-lucene-snapshots Elastic Lucene Snapshots https://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9 true false -------------------------------------------------- For Gradle: ["source","groovy",subs="attributes"] -------------------------------------------------- maven { name "lucene-snapshots" url 'https://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9' } -------------------------------------------------- === Log4j 2 Logger You need to also include Log4j 2 dependencies: ["source","xml",subs="attributes"] -------------------------------------------------- org.apache.logging.log4j log4j-core 2.11.1 -------------------------------------------------- And also provide a Log4j 2 configuration file in your classpath. For example, you can add in your `src/main/resources` project dir a `log4j2.properties` file like: ["source","properties",subs="attributes"] -------------------------------------------------- appender.console.type = Console appender.console.name = console appender.console.layout.type = PatternLayout appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %marker%m%n rootLogger.level = info rootLogger.appenderRef.console.ref = console -------------------------------------------------- === Using another Logger If you want to use another logger than Log4j 2, you can use http://www.slf4j.org/[SLF4J] bridge to do that: ["source","xml",subs="attributes"] -------------------------------------------------- org.apache.logging.log4j log4j-to-slf4j 2.11.1 org.slf4j slf4j-api 1.7.24 -------------------------------------------------- http://www.slf4j.org/manual.html[This page] lists implementations you can use. Pick your favorite logger and add it as a dependency. As an example, we will use the `slf4j-simple` logger: ["source","xml",subs="attributes"] -------------------------------------------------- org.slf4j slf4j-simple 1.7.21 -------------------------------------------------- :client-tests: {elasticsearch-root}/server/src/internalClusterTest/java/org/elasticsearch/client/documentation :hlrc-tests: {elasticsearch-root}/client/rest-high-level/src/test/java/org/elasticsearch/client :client-reindex-tests: {elasticsearch-root}/modules/reindex/src/internalClusterTest/java/org/elasticsearch/client/documentation include::client.asciidoc[] include::docs.asciidoc[] include::search.asciidoc[] include::aggs.asciidoc[] include::query-dsl.asciidoc[] include::admin/index.asciidoc[]