springboot整合es_[ElasticSearch从入门到场景实战]spring boot集成SpringData操作es
人生起起伏伏,有风光无限日,也有落魄失魂时,人在低谷时,唯有“熬过去,才会赢”
前言
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相关推荐
- 超完整!Springboot整合redis集群(Sentine),spring boot自动配置集成redis集群(Sentine)
1.添加maven依赖 注意maven版本依赖,版本要相互匹配,如不知道如何查看相对应的版本时,可进入博主主页查看博主上一篇博文. <parent><groupId>org.s ...
- springboot整合hibernate_峰哥说技术系列-17 .Spring Boot 整合 Spring Data JPA
今日份主题 Spring Boot 整合 Spring Data JPA JPA(Java Persistence API)是用于对象持久化的 API,是Java EE 5.0 平台标准的 ORM 规 ...
- Kafka 入门和 Spring Boot 集成
2019独角兽企业重金招聘Python工程师标准>>> Kafka 入门和 Spring Boot 集成 概述 kafka 是一个高性能的消息队列,也是一个分布式流处理平台(这里的流 ...
- 第 4-8 课:Spring Boot 集成 ElasticSearch
ElasticSearch 是⼀个开源的搜索引擎,建⽴在⼀个全⽂搜索引擎库 Apache Lucene™ 基础之上. Lucene 可以说是当下最先进.⾼性能.全功能的搜索引擎库--⽆论是开源还是私有 ...
- ElasticSearch——Spring Boot 集成 ES 操作详解
文章目录 ElasticSearch--Spring Boot 集成 ES 操作详解 1.SpringBoot 集成 ES 2.索引的API操作详解 3.文档的API操作详解 ElasticSearc ...
- Spring Boot 集成 Elasticsearch 实战
今天讲解下如何使用 Spring Boot 结合 ES. 可以在 ES 官方文档中发现,ES 为 Java REST Client 提供了两种方式的 Client:Java Low Level Cli ...
- Spring Boot集成Redis缓存之模拟高并发场景处理
前言 同样我们以上一篇文章为例子,搭建好环境之后,我欧美可以模拟高并发场景下,我们的缓存效率怎么样,到底能不能解决我们实际项目中的缓存问题.也就是如何解决缓存穿透? Spring Boot集成Redi ...
- ideal新建springboot工程_MyBatis初级实战之一:Spring Boot集成
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 尚硅谷-SpringBoot高级-检索-Elasticsearch快速入门
前面我们安装好了ElasticSearch,我以后就简称他为ES,而一些人还不知道基本的使用,那我们接下来做一个快速入门,了解一下他的使用方法,以及一些基本概念,方便我们后来整合,那么要学习ES最好的 ...
最新文章
- jQuery基础之(一)jQuery概述
- Android中的拍照camera和camera2
- plotly python_使用Plotly for Python时的基本思路
- mt4软件下载fxcm-mt4平台下载_顺风车软件哪个好用 这三个打车平台一定要下载
- JSK-372 图案输出【入门】
- 今天遇见了setTimeout()函数
- Oracle常见的Hint(二)
- 电脑初学者怎么学习写代码?代码怎样写入电脑?
- 地理分析方法论|地理探测器(Geo Detector)
- Nobook虚拟实验室完爆各种传统实验室
- FineUI 后台Grid中 某列添加背景色 AspCore MVC
- winows+Eclipse下Mahout配置
- About all the awsome websites
- echarts学习笔记1
- js 按拼音 首字母 排序 并分组
- 广汉哪里可以学计算机,广汉的年轻人学门啥技术好找工作呢
- 《上古天真论》第七讲文字版
- JDK1.8新特性Lambda表达式入门
- 蓝牙协议栈(六、芯片组)
- 水星UD6S网卡Linux驱动,水星UD6S无线网卡驱动
热门文章
- CSS样式引入方式和部分CSS样式的设置
- 旋转数组(右旋转,js实现,unshift,splicec实现)
- 计算机软件行业规范,计算机软件技术规范(ppt 117页)
- 电脑开机3秒就重启循环_小米9不开机、循环重启,插充电器屏幕没反应怎么回事?听说是通病,可以维修吗?...
- 数组的内存理解(图示)
- mysql 可视化监控_基于Prometheus构建MySQL可视化监控平台
- mysql查看客户端执行的语句_查看MySQL最近执行的语句-阿里云开发者社区
- python编程语言模块_Python基础编程常用模块汇总
- Linux(四):虚拟机Ubuntu 卸载
- android路由是什么意思,不能跑Android的路由不是好路由