Skip to content

Galeria-Kaufhof/ets-elasticsearch-rest-connector

Repository files navigation

ets-elasticsearch-rest-connector

Build Status

description

The connector uses the RESTful api of an elastic-server to . Currently it supports the elastic-version 6.3.1

initialization

first of all, you need an uri to the elasticsearch server or cluster contact node. for example, if you have a local running elasticnode a valid uri is

val elasticUri = elasticsearch://localhost:9200/[CLUSTERNAME]/[INDEXNAME]

where Clustername and Indexname are the identifier where the structured data in elasticsearch is stored. With the uri you build an ElasticSearchConfiguration

val maybeSearchConfiguration: Option[ElasticSearchConfiguration] = ElasticSearchUriParser(elasticUri)

If the configuration is none, there is a problem with the uri-preparation, you must look how you deal with this problem (e.g. Throw a runtimeexception) After you check if the configuration is not none, you can get the real object in the simplest way.

val elasticSearchConfiguration: ElasticSearchConfiguration = maybeSearchConfiguration.get

The next step ist to build a restclient. Here is an example of such an object with some timeout settings.

  val elasticRestClient: RestClient = RestClient.builder(elasticSearchConfiguration.hostList: _*).setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback {
    override def customizeRequestConfig(requestConfigBuilder: RequestConfig.Builder): RequestConfig.Builder = {
      requestConfigBuilder
        .setConnectTimeout(15000)
        .setSocketTimeout(60000)
        .setConnectionRequestTimeout(15000)
    }
  }).setMaxRetryTimeoutMillis(60000)
    .build()

More informations about the RestClient you find here

https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.2/client.html

Now, you can define a new ElasticSearchClient with the prior builded restclient.

val elasticClient: StandardElasticSearchClient = new StandardElasticSearchClient(elasticRestClient)

From here you can use the elasticClient for all your operations (index, search, percolate ...)

All examples uses the elasticClient-Object from this page as base to work with. Let's take a look to the different parts of this driver:

Full documentation

See the ElasticSearch REST Connector chapter on the ETS documentation portal.