Spring Boot: работа с NoSQL, Elasticsearch

Elasticsearch - это распределенная поисковая и аналитическая RESTful система с открытым исходным кодом. Spring Boot предлагает базовую авто-конфигурацию для Elasticsearch.

Spring Boot поддерживает несколько клиентов:

  • Официальные Java высокоуровневые и низкоуровневые REST клиенты
  • ReactiveElasticsearchClient, предоставленный Spring Data Elasticsearch

Транспортный клиент все еще доступен, но его поддержка устарела в Spring Data Elasticsearch и самом Elasticsearch. Он будет удален в будущем релизе. Spring Boot предоставляет специальный стартер, spring-boot-starter-data-elasticsearch.

Клиент Jest также устарел, так как Elasticsearch и Spring Data Elasticsearch предоставляют официальную поддержку клиентам REST.

Подключение к Elasticsearch с использованием REST клиентов

Elasticsearch поставляет два разных REST клиента, которые можно использовать для запроса кластера: низкоуровневый клиент и высокоуровневый клиент.

Если у вас есть зависимость org.elasticsearch.client:elasticsearch-rest-client на пути к классам, Spring Boot автоматически настроит и зарегистрирует bean-компонент RestClient, который по умолчанию нацелен на localhost:9200. Вы можете дополнительно настроить настройку RestClient, как показано в следующем примере:

spring.elasticsearch.rest.uris=https://search.example.com:9200
spring.elasticsearch.rest.read-timeout=10s
spring.elasticsearch.rest.username=user
spring.elasticsearch.rest.password=secret

Вы также можете зарегистрировать произвольное количество bean-компонентов, которые реализуют RestClientBuilderCustomizer для более сложных настроек. Чтобы получить полный контроль над регистрацией, определите bean-компонент RestClient.

Если у вас есть зависимость org.elasticsearch.client:elasticsearch-rest-high-level-client на пути к классам, Spring Boot автоматически настроит RestHighLevelClient, который оборачивает любой существующий компонент RestClient, повторно используя его конфигурацию HTTP.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки