Class ElasticsearchBackendSettings

java.lang.Object
org.hibernate.search.backend.elasticsearch.cfg.ElasticsearchBackendSettings

public final class ElasticsearchBackendSettings extends Object
Configuration properties for Elasticsearch backends.

Constants in this class are to be appended to a prefix to form a property key; see BackendSettings for details.

Author:
Gunnar Morling
  • Field Details

    • TYPE_NAME

      public static final String TYPE_NAME
      The value to set the backend type configuration property in order to get an Elasticsearch backend instantiated by Hibernate Search.

      Only useful if you have more than one backend technology in the classpath; otherwise the backend type is automatically detected.

      See Also:
    • HOSTS

      public static final String HOSTS
      The hostname and ports of the Elasticsearch servers to connect to.

      Expects a String representing a hostname and port such as localhost or es.mycompany.com:4400, or a String containing multiple such hostname-and-port strings separated by commas, or a Collection<String> containing such hostname-and-port strings.

      Multiple servers may be specified for load-balancing: requests will be assigned to each host in turns.

      Setting this property at the same time as URIS will lead to an exception being thrown on startup.

      Defaults to ElasticsearchBackendSettings.Defaults.HOSTS.

      See Also:
    • PROTOCOL

      public static final String PROTOCOL
      The protocol to use when connecting to the Elasticsearch servers.

      Expects a String: either http or https.

      Setting this property at the same time as URIS will lead to an exception being thrown on startup.

      Defaults to ElasticsearchBackendSettings.Defaults.PROTOCOL.

      See Also:
    • URIS

      public static final String URIS
      The protocol, hostname and ports of the Elasticsearch servers to connect to.

      Expects either a String representing an URI such as http://localhost or https://es.mycompany.com:4400, or a String containing multiple such URIs separated by commas, or a Collection<String> containing such URIs.

      All the URIs must specify the same protocol.

      Setting this property at the same time as HOSTS or PROTOCOL will lead to an exception being thrown on startup.

      Defaults to http://localhost:9200, unless HOSTS or PROTOCOL are set, in which case they take precedence.

      See Also:
    • PATH_PREFIX

      public static final String PATH_PREFIX
      Property for specifying the path prefix prepended to the request end point. Use the path prefix if your Elasticsearch instance is located at a specific context path.

      Defaults to ElasticsearchBackendSettings.Defaults.PATH_PREFIX.

      See Also:
    • VERSION

      public static final String VERSION
      The version of Elasticsearch running on the Elasticsearch cluster.

      Expects either an ElasticsearchVersion object, or a String that can be parsed in such an object.

      No default: if not provided, the version will be resolved automatically by sending a request to the Elasticsearch cluster on startup.

      See Also:
    • VERSION_CHECK_ENABLED

      public static final String VERSION_CHECK_ENABLED
      Whether check version of the Elasticsearch cluster is enabled.

      Expects a Boolean value such as true or false, or a string that can be parsed into a Boolean value.

      Defaults to true when the VERSION is unconfigured or set to a distribution that supports version checking, and to false when the VERSION is set to a distribution that does not support version checking (like Amazon OpenSearch Serverless).

      See Also:
    • USERNAME

      public static final String USERNAME
      The username to send when connecting to the Elasticsearch servers (HTTP authentication).

      Expects a String.

      Defaults to no username (anonymous access).

      See Also:
    • PASSWORD

      public static final String PASSWORD
      The password to send when connecting to the Elasticsearch servers (HTTP authentication).

      Expects a String.

      Defaults to no username (anonymous access).

      See Also:
    • REQUEST_TIMEOUT

      public static final String REQUEST_TIMEOUT
      The timeout when executing a request to an Elasticsearch server.

      This includes the time needed to establish a connection, send the request and read the response.

      Expects a positive Integer value in milliseconds, such as 60000, or a String that can be parsed into such Integer value.

      Defaults to no request timeout.

      See Also:
    • READ_TIMEOUT

      public static final String READ_TIMEOUT
      The timeout when reading responses from an Elasticsearch server.

      Expects a positive Integer value in milliseconds, such as 60000, or a String that can be parsed into such Integer value.

      Defaults to ElasticsearchBackendSettings.Defaults.READ_TIMEOUT.

      See Also:
    • CONNECTION_TIMEOUT

      public static final String CONNECTION_TIMEOUT
      The timeout when establishing a connection to an Elasticsearch server.

      Expects a positive Integer value in milliseconds, such as 3000, or a String that can be parsed into such Integer value.

      Defaults to ElasticsearchBackendSettings.Defaults.CONNECTION_TIMEOUT.

      See Also:
    • MAX_CONNECTIONS

      public static final String MAX_CONNECTIONS
      The maximum number of simultaneous connections to the Elasticsearch cluster, all hosts taken together.

      Expects a positive Integer value, such as 20, or a String that can be parsed into such Integer value.

      Defaults to ElasticsearchBackendSettings.Defaults.MAX_CONNECTIONS.

      See Also:
    • MAX_CONNECTIONS_PER_ROUTE

      public static final String MAX_CONNECTIONS_PER_ROUTE
      The maximum number of simultaneous connections to each host of the Elasticsearch cluster.

      Expects a positive Integer value, such as 10, or a String that can be parsed into such Integer value.

      Defaults to ElasticsearchBackendSettings.Defaults.MAX_CONNECTIONS_PER_ROUTE.

      See Also:
    • DISCOVERY_ENABLED

      public static final String DISCOVERY_ENABLED
      Whether automatic discovery of nodes in the Elasticsearch cluster is enabled.

      Expects a Boolean value such as true or false, or a string that can be parsed into a Boolean value.

      Defaults to ElasticsearchBackendSettings.Defaults.DISCOVERY_ENABLED.

      See Also:
    • DISCOVERY_REFRESH_INTERVAL

      public static final String DISCOVERY_REFRESH_INTERVAL
      The time interval between two executions of the automatic discovery, if enabled.

      Expects a positive Integer value in seconds, such as 2, or a String that can be parsed into such Integer value.

      Defaults to ElasticsearchBackendSettings.Defaults.DISCOVERY_REFRESH_INTERVAL.

      See Also:
    • CLIENT_CONFIGURER

      public static final String CLIENT_CONFIGURER
      A ElasticsearchHttpClientConfigurer that defines custom HTTP client configuration.

      It can be used for example to tune the SSL context to accept self-signed certificates. It allows overriding other HTTP client settings, such as USERNAME or MAX_CONNECTIONS_PER_ROUTE.

      Expects a reference to a bean of type ElasticsearchHttpClientConfigurer.

      Defaults to no value.

      See Also:
    • LOG_JSON_PRETTY_PRINTING

      public static final String LOG_JSON_PRETTY_PRINTING
      Whether JSON included in logs should be pretty-printed (indented, with line breaks).

      Expects a Boolean value such as true or false, or a string that can be parsed into a Boolean value.

      Defaults to ElasticsearchBackendSettings.Defaults.LOG_JSON_PRETTY_PRINTING.

      See Also:
    • MULTI_TENANCY_STRATEGY

      public static final String MULTI_TENANCY_STRATEGY
      How to implement multi-tenancy.

      Expects a MultiTenancyStrategyName value, or a String representation of such value.

      Defaults to ElasticsearchBackendSettings.Defaults.MULTI_TENANCY_STRATEGY.

      See Also:
    • MAPPING_TYPE_NAME_STRATEGY

      public static final String MAPPING_TYPE_NAME_STRATEGY
      How to map documents to their type name, i.e. how to determine the type name of a document in search hits.

      Expects a TypeNameMappingStrategyName value, or a String representation of such value.

      Defaults to ElasticsearchBackendSettings.Defaults.MAPPING_TYPE_NAME_STRATEGY.

      See Also:
    • LAYOUT_STRATEGY

      public static final String LAYOUT_STRATEGY
      How to determine index names and aliases.

      Expects a reference to a bean of type IndexLayoutStrategy.

      Defaults to the simple strategy:

      • The non-alias name follows the format <hibernateSearchIndexName>-<6 digits>
      • The write alias follows the format <hibernateSearchIndexName>-write
      • The read alias follows the format <hibernateSearchIndexName>-read
      See Also:
    • THREAD_POOL_SIZE

      public static final String THREAD_POOL_SIZE
      The size of the thread pool assigned to the backend.

      Expects a strictly positive integer value, or a string that can be parsed into an integer value.

      See the reference documentation, section "Elasticsearch backend - Threads", for more information about this setting and its implications.

      Defaults to the number of processor cores available to the JVM on startup.

      See Also:
    • SCROLL_TIMEOUT

      public static final String SCROLL_TIMEOUT
      Property for specifying the maximum duration a scroll will be usable if no other results are fetched from Elasticsearch.

      Expects a positive Integer value in seconds, such as 60, or a String that can be parsed into such Integer value.

      Defaults to ElasticsearchBackendSettings.Defaults.SCROLL_TIMEOUT.

      See Also:
    • MAX_KEEP_ALIVE

      public static final String MAX_KEEP_ALIVE
      How long connections to the Elasticsearch cluster can be kept idle.

      Expects a positive Long value of milliseconds, such as 60000, or a String that can be parsed into such Integer value.

      If the response from an Elasticsearch cluster contains a Keep-Alive header, then the effective max idle time will be whichever is lower: the duration from the Keep-Alive header or the value of this property (if set).

      If this property is not set, only the Keep-Alive header is considered, and if it's absent, idle connections will be kept forever.

      See Also:
    • QUERY_SHARD_FAILURE_IGNORE

      public static final String QUERY_SHARD_FAILURE_IGNORE
      This property defines if partial shard failures are ignored.

      In case all shards fail, Elasticsearch cluster will return a 400 status code itself, but if only some of the shards fail, then the client will receive a successful partial response from the shards that were successful.

      To prevent getting any partial results this setting can be set to false. While if the partial failures should be ignored and considered as valid results then the value should be set to true.

      Expects a Boolean value such as true or false, or a string that can be parsed into a Boolean value.

      Defaults to ElasticsearchBackendSettings.Defaults.QUERY_SHARD_FAILURE_IGNORE.

      See Also: