spring boot 修改端口_spring-data-elasticsearch 快速入门-Spring Boot+Elasticsearch

Spring Data家族对Elasticsearch也进行了封装支持,使用spring-data-elasticsearch,就像使用spring-data-jpa、spring-data-solr、spring-data-redis、spring-data-mongodb等一样操作简单,它们封装的方法类似,提供的接口格式都基本相同,所以开发流程也基本是一样的。

spring-data-elasticsearch 是 Spring Data 的 Community modules 之一,是 Spring Data 对 Elasticsearch 引擎的实现。

Elasticsearch 默认提供轻量级的 HTTP Restful 接口形式的访问。相对来说,使用 HTTP Client 调用也很简单。但 spring-data-elasticsearch 可以更快的支持构建在 Spring 应用上,比如在 application.properties 配置 ES 节点信息和 spring-boot-starter-data-elasticsearch 依赖,直接在 Spring Boot 应用上使用。

1. ElasticsearchRepository 接口

ElasticsearchRepository 是Elasticsearch 通用的存储接口的一种默认实现。Spring 根据接口定义的方法名,具体执行对应的数据存储实现。

ElasticsearchRepository 继承 ElasticsearchCrudRepository ,ElasticsearchCrudRepository 继承 PagingAndSortingRepository,所以一般 CRUD 带分页已经支持。

先看看 ElasticsearchRepository 接口的定义。

@NoRepositoryBean

public interface ElasticsearchRepository extends ElasticsearchCrudRepository {

S index(S var1);

Iterable search(QueryBuilder var1);

Page search(QueryBuilder var1, Pageable var2);

Page search(SearchQuery var1);

Page searchSimilar(T var1, String[] var2, Pageable var3);

void refresh();

Class getEntityClass();

}

ElasticsearchRepository 继承关系如下所示。除了有CRUD的基本功能之外,还有分页和排序。

/**

* 接口关系:

* ElasticsearchRepository --> ElasticsearchCrudRepository --> PagingAndSortingRepository --> CrudRepository --> Repository

*/

80341281fc67e51a8b4855c744c27627.png

这里的Repository相当于DAO,操作MySQL 还是elasticsearch都是一样的。

2. spring-data-elasticsearch 依赖包

pom文件中导入依赖。

org.springframework.boot

spring-boot-starter-data-elasticsearch

org.springframework.boot

spring-boot-starter-parent

2.1.7.RELEASE

如下是相关jar版本以及依赖关系。

033f0f2d5ec911081fa1b0913b87133e.png

Spring Data Elasticsearch 和 Elasticsearch 版本之间的兼容性,可以参考如下表格:

https://github.com/spring-projects/spring-data-elasticsearch

99489d833008fafb0e22cd66215ff11c.png

如果想要使用最新的 Elasticsearch,可以通过默认的Java High Level REST Client API调用去实现。

3. 添加Elasticsearch相关配置项

修改application.yml配置文件,添加Elasticsearch 节点配置。

spring:

data:

elasticsearch:

cluster-nodes: 127.0.0.1:9300

默认 9300 是 Java 客户端的端口。9200 是支持 Restful HTTP 的接口。

e5c1ef47c6485a9bef8779089c90a7bd.png

cluster-name:elasticsearch 集群名。(默认值: elasticsearch)

cluster-nodes:集群节点地址列表,用逗号分隔。

repositories.enabled: 开启 Elasticsearch 仓库。(默认值:true)

4. Elasticsearch 数据操作层

接口只要继承 ElasticsearchRepository 类即可。

默认会提供很多实现,比如 CRUD 和搜索相关的实现。类似于 JPA 读取数据,是使用 CrudRepository 进行操作 ES 数据。支持的默认方法有: count(), findAll(), findOne(ID), delete(ID), deleteAll(), exists(ID), save(DomainObject), save(Iterable)。

0424c742a379f3a2321f165e3f2cb021.png

完整代码,可以参考如下链接:

Elasticsearch 6.4.3 和Spring Boot 2.1.7集成-实战演练完整代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值