Skip to content

Latest commit

 

History

History
147 lines (108 loc) · 4.72 KB

index.asciidoc

File metadata and controls

147 lines (108 loc) · 4.72 KB

Java API

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 Client 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 Bulk.

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 Maven Central.

For example, you can define the latest version in your pom.xml file:

    org.elasticsearch.client
    transport
    {version}

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:

    elastic-lucene-snapshots
    Elastic Lucene Snapshots
    http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9
    true
    false

For Gradle:

maven {
    url 'http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9'
}

Log4j 2 Logger

You need to also include Log4j 2 dependencies:

    org.apache.logging.log4j
    log4j-core
    2.9.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:

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 SLF4J bridge to do that:

    org.apache.logging.log4j
    log4j-to-slf4j
    2.9.1


    org.slf4j
    slf4j-api
    1.7.24

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:

    org.slf4j
    slf4j-simple
    1.7.21