Class ElasticsearchConfiguration

java.lang.Object
org.springframework.data.elasticsearch.config.ElasticsearchConfigurationSupport
org.springframework.data.elasticsearch.client.elc.ElasticsearchConfiguration

public abstract class ElasticsearchConfiguration extends ElasticsearchConfigurationSupport
Base class for a @Configuration class to set up the Elasticsearch connection using the Elasticsearch Client. This class exposes different parts of the setup as Spring beans. Deriving classes must provide the ClientConfiguration to use. From Version 6.0 on, this class uses the new Rest5Client from Elasticsearch 9. The old implementation using the RestClient is still available under the name ElasticsearchLegacyRestClientConfiguration.
Since:
4.4
Author:
Peter-Josef Meisch
  • Constructor Details

    • ElasticsearchConfiguration

      public ElasticsearchConfiguration()
  • Method Details

    • clientConfiguration

      @Bean(name="elasticsearchClientConfiguration") public abstract ClientConfiguration clientConfiguration()
      Must be implemented by deriving classes to provide the ClientConfiguration.
      Returns:
      configuration, must not be null
    • elasticsearchRest5Client

      @Bean public co.elastic.clients.transport.rest5_client.low_level.Rest5Client elasticsearchRest5Client(ClientConfiguration clientConfiguration)
      Provides the underlying low level Elasticsearch RestClient.
      Parameters:
      clientConfiguration - configuration for the client, must not be null
      Returns:
      RestClient
    • elasticsearchTransport

      @Bean public co.elastic.clients.transport.ElasticsearchTransport elasticsearchTransport(co.elastic.clients.transport.rest5_client.low_level.Rest5Client rest5Client, co.elastic.clients.json.JsonpMapper jsonpMapper)
      Provides the Elasticsearch transport to be used. The default implementation uses the Rest5Client bean and the JsonpMapper bean provided in this class.
      Returns:
      the ElasticsearchTransport
      Since:
      5.2
    • elasticsearchClient

      @Bean public co.elastic.clients.elasticsearch.ElasticsearchClient elasticsearchClient(co.elastic.clients.transport.ElasticsearchTransport transport)
      Provides the ElasticsearchClient to be used.
      Parameters:
      transport - the ElasticsearchTransport to use
      Returns:
      ElasticsearchClient instance
    • elasticsearchOperations

      @Bean(name={"elasticsearchOperations","elasticsearchTemplate"}) public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter, co.elastic.clients.elasticsearch.ElasticsearchClient elasticsearchClient)
      Creates a ElasticsearchOperations implementation using an ElasticsearchClient.
      Returns:
      never null.
    • jsonpMapper

      @Bean public co.elastic.clients.json.JsonpMapper jsonpMapper()
      Provides the JsonpMapper bean that is used in the elasticsearchTransport(Rest5Client, JsonpMapper) method.
      Returns:
      the JsonpMapper to use
      Since:
      5.2
    • transportOptions

      public co.elastic.clients.transport.TransportOptions transportOptions()
      Returns:
      the options that should be added to every request. Must not be null