人生起起伏伏,有风光无限日,也有落魄失魂时,人在低谷时,唯有“熬过去,才会赢”

前言

Elasticsearch的Spring Data是Spring Data项目的一部分,Spring Data Elasticsearch项目提供了对Elasticsearch操作的集成,用于对Elastichsearch文档进行交互并轻松编写访问层代码。

01整合Spring Data Elasticsearch

创建一个新的springboot项目,并勾选Spring Data Elasticsearch,如图:

创建完成后打开pom看一下,如图:

等待maven拉下所有依赖,然后打开application.properties,添加以下几个配置:

1、spring.data.elasticsearch.repositories.enabled=true(打开elasticsearch仓库,默认true)

2、spring.elasticsearch.rest.uris=elasticsearch的ip:端口或elasticsearch域名(连接elasticsearch地址)

3、spring.data.elasticsearch.client.reactive.connection-timeout=3000(连接elasticsearch超时时间)

4、spring.data.elasticsearch.client.reactive.socket-timeout=3000(套接字超时时间)

如下:

spring.application.name=elasticSearchDemo
server.port=8080
# 开启es仓库
spring.data.elasticsearch.repositories.enabled=true
spring.elasticsearch.rest.uris=http://127.0.0.1:9200
spring.data.elasticsearch.client.reactive.connection-timeout=3000
spring.data.elasticsearch.client.reactive.socket-timeout=3000

02Spring Data Elasticsearch核心

1、@Document注解

属性:

1、indexName 索引名称

2、refreshInterval 索引刷新间隔时间

3、indexStoreType 索引存储类型,一般使用niofs

4、shards 分片数,一般等于elasticsearch节点数

5、replicas 副本数,一般等于shards - 1

2、@Id注解 属性级别注解,标注变量映射到index中document的id字段

3、ElasticsearchRepository 被继承类,实现jpa对指定index操作

4、ElasticsearchRestTemplate 操作类,用于对elasticsearch的操作

03实现操作elasticsearch的增删改查

1、创建一个DemoDO类,用于映射elasticsearch中的index

1、类上添加注解:

@Document(indexName = "demo", refreshInterval = "30s", indexStoreType = "niofs", shards = 1, replicas = 0)

2、添加属性:id、name、age、nickName、device、lastLoginDate

3、在属性id上添加注解:@Id

4、添加get/set和toString

如图:

2、创建一个DemoRepository接口,用于实现jpa操作

1、继承ElasticsearchRepository

2、ElasticsearchRepository第一个类型为DemoDO,第二个类型为String,代表该接口用于操作DemoDO的indexName所写的索引,id为String类型(elasticsearch的id默认为string类型)

如下:

package com.elasticsearch.demo.repository;import com.elasticsearch.demo.dataobject.DemoDO;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;public interface DemoRepository extends ElasticsearchRepository<DemoDO, String> {
}

完成这两步以后,就已经完成准备工作了。

接下来我们利用DemoRepository来操作elasticsearch:

1、创建单元测试类

@SpringBootTest
class ElasticSearchDemoApplicationTests

2、注入DemoRepository

@Autowired
private DemoRepository repository;

3、新增save方法

@Test
public void save() {DemoDO demoDO = new DemoDO();demoDO.setDevice("phone");demoDO.setAge((int) (Math.random() * 10 + 1));demoDO.setName(UUID.randomUUID().toString());demoDO.setNickName(UUID.randomUUID().toString());demoDO.setLastLoginDate(new Date());repository.save(demoDO);
}

3、新增修改方法(其实就是demoDO设置了id的值,就是为修改)

@Test
public void update() {DemoDO demoDO = new DemoDO();demoDO.setId("");demoDO.setDevice("phone");demoDO.setAge((int) (Math.random() * 10 + 1));demoDO.setName(UUID.randomUUID().toString());demoDO.setNickName(UUID.randomUUID().toString());demoDO.setLastLoginDate(new Date());repository.save(demoDO);
}

4、新增查找方法

@Test
public void query() {Iterable<DemoDO> demoDOIterator = repository.findAll();
}

5、新增删除方法

@Test
public void deleteAll() {repository.deleteAll();
}

总 结

目前elasticsearch操作的资料还是比较少的,希望我的文章可以帮到大家提示和解决日常工作中的问题,jpa中还有很多方法可以使用,方法名通俗易懂,大家可以看看,至于聚合查询,下期会来继续讲解的,感谢大家的支持,谢谢。

小手一抖,点赞就有

springboot整合es_[ElasticSearch从入门到场景实战]spring boot集成SpringData操作es相关推荐

  1. 超完整!Springboot整合redis集群(Sentine),spring boot自动配置集成redis集群(Sentine)

    1.添加maven依赖 注意maven版本依赖,版本要相互匹配,如不知道如何查看相对应的版本时,可进入博主主页查看博主上一篇博文. <parent><groupId>org.s ...

  2. springboot整合hibernate_峰哥说技术系列-17 .Spring Boot 整合 Spring Data JPA

    今日份主题 Spring Boot 整合 Spring Data JPA JPA(Java Persistence API)是用于对象持久化的 API,是Java EE 5.0 平台标准的 ORM 规 ...

  3. Kafka 入门和 Spring Boot 集成

    2019独角兽企业重金招聘Python工程师标准>>> Kafka 入门和 Spring Boot 集成 概述 kafka 是一个高性能的消息队列,也是一个分布式流处理平台(这里的流 ...

  4. 第 4-8 课:Spring Boot 集成 ElasticSearch

    ElasticSearch 是⼀个开源的搜索引擎,建⽴在⼀个全⽂搜索引擎库 Apache Lucene™ 基础之上. Lucene 可以说是当下最先进.⾼性能.全功能的搜索引擎库--⽆论是开源还是私有 ...

  5. ElasticSearch——Spring Boot 集成 ES 操作详解

    文章目录 ElasticSearch--Spring Boot 集成 ES 操作详解 1.SpringBoot 集成 ES 2.索引的API操作详解 3.文档的API操作详解 ElasticSearc ...

  6. Spring Boot 集成 Elasticsearch 实战

    今天讲解下如何使用 Spring Boot 结合 ES. 可以在 ES 官方文档中发现,ES 为 Java REST Client 提供了两种方式的 Client:Java Low Level Cli ...

  7. Spring Boot集成Redis缓存之模拟高并发场景处理

    前言 同样我们以上一篇文章为例子,搭建好环境之后,我欧美可以模拟高并发场景下,我们的缓存效率怎么样,到底能不能解决我们实际项目中的缓存问题.也就是如何解决缓存穿透? Spring Boot集成Redi ...

  8. ideal新建springboot工程_MyBatis初级实战之一:Spring Boot集成

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. 尚硅谷-SpringBoot高级-检索-Elasticsearch快速入门

    前面我们安装好了ElasticSearch,我以后就简称他为ES,而一些人还不知道基本的使用,那我们接下来做一个快速入门,了解一下他的使用方法,以及一些基本概念,方便我们后来整合,那么要学习ES最好的 ...

最新文章

  1. jQuery基础之(一)jQuery概述
  2. Android中的拍照camera和camera2
  3. plotly python_使用Plotly for Python时的基本思路
  4. mt4软件下载fxcm-mt4平台下载_顺风车软件哪个好用 这三个打车平台一定要下载
  5. JSK-372 图案输出【入门】
  6. 今天遇见了setTimeout()函数
  7. Oracle常见的Hint(二)
  8. 电脑初学者怎么学习写代码?代码怎样写入电脑?
  9. 地理分析方法论|地理探测器(Geo Detector)
  10. Nobook虚拟实验室完爆各种传统实验室
  11. FineUI 后台Grid中 某列添加背景色 AspCore MVC
  12. winows+Eclipse下Mahout配置
  13. About all the awsome websites
  14. echarts学习笔记1
  15. js 按拼音 首字母 排序 并分组
  16. 广汉哪里可以学计算机,广汉的年轻人学门啥技术好找工作呢
  17. 《上古天真论》第七讲文字版
  18. JDK1.8新特性Lambda表达式入门
  19. 蓝牙协议栈(六、芯片组)
  20. 水星UD6S网卡Linux驱动,水星UD6S无线网卡驱动

热门文章

  1. CSS样式引入方式和部分CSS样式的设置
  2. 旋转数组(右旋转,js实现,unshift,splicec实现)
  3. 计算机软件行业规范,计算机软件技术规范(ppt 117页)
  4. 电脑开机3秒就重启循环_小米9不开机、循环重启,插充电器屏幕没反应怎么回事?听说是通病,可以维修吗?...
  5. 数组的内存理解(图示)
  6. mysql 可视化监控_基于Prometheus构建MySQL可视化监控平台
  7. mysql查看客户端执行的语句_查看MySQL最近执行的语句-阿里云开发者社区
  8. python编程语言模块_Python基础编程常用模块汇总
  9. Linux(四):虚拟机Ubuntu 卸载
  10. android路由是什么意思,不能跑Android的路由不是好路由