SPRING BOOT TUTORIAL SPRING BOOT TUTORIAL
GitHub (opens new window)
GitHub (opens new window)
  • 框架

    • SpringBoot

      • SpringBoot综合

      • SpringBoot基础

      • SpringBootWeb

      • SpringBoot数据

        • SpringBoot 之 JDBC
        • SpringBoot 之集成 MyBatis
        • SpringBoot 之集成 Elasticsearch
          • 简介
            • 通过 REST 客户端连接 Elasticsearch
            • 通过 Jest 连接 Elasticsearch
            • 通过 Spring Data 访问 Elasticsearch
            • Elasticsearch Repositories
          • 源码
          • 引申和引用
        • SpringBoot 之集成 MongoDB
      • SpringBootIO

      • SpringBoot安全

      • SpringBoot其他

  • Java
  • 框架
  • SpringBoot
  • SpringBoot数据
dunwu
2018-12-25
目录

SpringBoot 之集成 Elasticsearch

# SpringBoot 之集成 Elasticsearch

# 简介

Elasticsearch (opens new window) 是一个开源的、分布式的搜索和分析引擎。

# 通过 REST 客户端连接 Elasticsearch

如果在 classpath 路径下存在 org.elasticsearch.client:elasticsearch-rest-client jar 包,Spring Boot 会自动配置并注册一个 RestClient Bean,它的默认访问路径为:localhost:9200。

你可以使用如下方式进行定制:

spring.elasticsearch.rest.uris=http://search.example.com:9200
spring.elasticsearch.rest.username=user
spring.elasticsearch.rest.password=secret

您还可以注册实现任意数量的 RestClientBuilderCustomizer bean,以进行更高级的定制。要完全控制注册,请定义 RestClient bean。

如果 classpath 路径有 org.elasticsearch.client:elasticsearch-rest-high-level-client jar 包,Spring Boot 将自动配置一个 RestHighLevelClient,它包装任何现有的 RestClient bean,重用其 HTTP 配置。

# 通过 Jest 连接 Elasticsearch

如果 classpath 上有 Jest,你可以注入一个自动配置的 JestClient,默认情况下是 localhost:9200。您可以进一步调整客户端的配置方式,如以下示例所示:

spring.elasticsearch.jest.uris=http://search.example.com:9200
spring.elasticsearch.jest.read-timeout=10000
spring.elasticsearch.jest.username=user
spring.elasticsearch.jest.password=secret

您还可以注册实现任意数量的 HttpClientConfigBuilderCustomizer bean,以进行更高级的定制。以下示例调整为其他 HTTP 设置:

static class HttpSettingsCustomizer implements HttpClientConfigBuilderCustomizer {

	@Override
	public void customize(HttpClientConfig.Builder builder) {
		builder.maxTotalConnection(100).defaultMaxTotalConnectionPerRoute(5);
	}

}

要完全控制注册,请定义 JestClient bean。

# 通过 Spring Data 访问 Elasticsearch

要连接到 Elasticsearch,您必须提供一个或多个集群节点的地址。可以通过将 spring.data.elasticsearch.cluster-nodes 属性设置为以逗号分隔的 host:port 列表来指定地址。使用此配置,可以像任何其他 Spring bean 一样注入 ElasticsearchTemplate 或 TransportClient,如以下示例所示:

spring.data.elasticsearch.cluster-nodes=localhost:9300
@Component
public class MyBean {

	private final ElasticsearchTemplate template;

	public MyBean(ElasticsearchTemplate template) {
		this.template = template;
	}

	// ...

}

如果你添加了自定义的 ElasticsearchTemplate 或 TransportClient @Bean ,就会替换默认的配置。

# Elasticsearch Repositories

Spring Data 包含对 Elasticsearch 的 repository 支持。基本原则是根据方法名称自动为您构建查询。

事实上,Spring Data JPA 和 Spring Data Elasticsearch 共享相同的通用基础架构。

# 源码

完整示例:源码 (opens new window)

使用方法:

mvn clean package
cd target
java -jar spring-boot-data-elasticsearch.jar

# 引申和引用

引申

  • Spring Boot 教程 (opens new window)

参考

  • Spring Boot 官方文档之 boot-features-elasticsearch (opens new window)
  • Spring Data Elasticsearch Github (opens new window)
  • Spring Data Elasticsearch 官方文档 (opens new window)
📝 帮助改善此页面! (opens new window)
#Java#框架#Spring#SpringBoot#Elasticsearch
上次更新: 2024/01/27, 23:16:10
SpringBoot 之集成 MyBatis
SpringBoot 之集成 MongoDB

← SpringBoot 之集成 MyBatis SpringBoot 之集成 MongoDB→

最近更新
01
SpringBoot 之快速入门
12-10
02
SpringBoot 之安全快速入门
05-13
03
SpringBoot 知识图谱
08-12
更多文章>
Theme by Vdoing | Copyright © 2019-2024 钝悟(dunwu) | CC-BY-SA-4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×