Springboot 集成 ElasticSearch 踩坑
这里只涉及到基础使用
- 导包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
- 配置
application.yml
server:
port: 8069
spring:
data:
elasticsearch:
cluster-nodes: 127.0.0.1:9300 #配置java访问elasticsearch端口
repositories:
enabled: true
cluster-name: elasticsearch #需与elasticsearch配置文件的名字一致,也可以不配置
- 创建普通的entity
@Data
@Document(indexName = "索引名称(只能小写)",type = "类型名")
public class Study{
private Integer id;
private String name;
private String sex;
private Integer age;
}
- 创建仓库
StudyRepository
并继承ElasticsearchCrudRepository<Study, Integer>
public interface StudyRepository extends ElasticsearchCrudRepository<Study, Integer> {
}
- 创建service和实现类,以及Controller
public interface StudyService {
Study save(Study study);
void delete(Integer id);
Study update(Study study);
Study get(Integer id);
Page<Study> getAll(String name,Pageable pageable);
}
@Service
@RequiredArgsConstructor
public class StudyServiceImpl implements StudyService {
private final StudyRepository studyRepository;
private final ElasticsearchTemplate elasticsearchTemplate;
@Override
public Study save(Study study) {
return studyRepository.save(study);
}
@Override
public void delete(Integer id) {
studyRepository.deleteById(id);
}
@Override
public Study update(Study study) {
Optional<Study> studyOptional = studyRepository.findById(study.getId());
studyOptional.ifPresent(s -> {
studyRepository.save(study);
});
return study;
}
@Override
public Study get(Integer id) {
return studyRepository.findById(id).orElse(null);
}
/**
* 根据name查询(使用template进行复杂查询)
*/
@Override
public Page<Study> getAll(String name, Pageable pageable) {
NativeSearchQueryBuilder query = new NativeSearchQueryBuilder().withPageable(pageable);
if (!StringUtils.isEmpty(name)) {
query.withQuery(QueryBuilders.matchQuery("name", name));
}
NativeSearchQuery buildQuery = query.build();
List<Study> studies = elasticsearchTemplate.queryForList(buildQuery , Study.class);
return new PageImpl<>(studies);
}
注意:
目前
ElasticSearch
没有7.2的jar包~~使用7.2会报找不到nodes,建议降低版本~ElasticSearch
提供的可视化工具Kibana
的版本必须与你安装的ElasticSearch
版本一一对应,不然无法启动~
参考:
Springboot 集成 ElasticSearch 踩坑的更多相关文章
- springboot集成elasticsearch
在基础阶段学习ES一般是首先是 安装ES后借助 Kibana 来进行CURD 了解ES的使用: 在进阶阶段可以需要学习ES的底层原理,如何通过Version来实现乐观锁保证ES不出问题等核心原理: 第 ...
- HDP 3.1.0 集成 Sqoop2 踩坑问题记录
HDP 3.1.0 集成 Sqoop2 踩坑问题记录 本文原始地址:https://sitoi.cn/posts/65261.html 问题一 $ sqoop:000> start job -n ...
- centos 7( linux )下搭建elasticsearch踩坑记
原文:https://blog.csdn.net/an88411980/article/details/83150380 概述 公司最近在做全文检索的项目,发现elasticsearch踩了不少 ...
- SpringBoot 集成 Elasticsearch
前面在 ubuntu 完成安装 elasticsearch,现在我们SpringBoot将集成elasticsearch. 1.创建SpringBoot项目 我们这边直接引入NoSql中Spring ...
- 【原创】SpringBoot 2.7.0通过lettuce及commons-pool2 v2.9.0集成Redis踩坑记录
背景 公司的一个项目由于HTTPS证书到期,导致小程序.POS不能正常使用.所以百度了下,通过URL检测证书有效期的代码,并自行整合到一个服务中. 代码仓库:[基于SpringBoot + 企业微信 ...
- Spring-boot集成RabbitMQ踩过的坑
1.java.net.SocketException: socket closed 官方文档已经说明,新建user和guest的账户是没有远程登录的权限的 需要对登录所用账户授权 解决方法: rabb ...
- SpringBoot + SpringCloud学习踩坑实记
踩的坑: 1).springcloud框架中,依赖一直报错,很可能是没有添加springcloud的依赖,或者是依赖的版本号过低.并且springboot也有一个父依赖. 2.springcloud ...
- springboot整合jsp踩坑
springboot以其高效的开发效率越来越多的用在中小项目的开发,并且在分布式开发中的使用也很广泛,springboot官方推荐的前端框架却是thymeleaf,并且默认不支持jsp,而大部分jav ...
- Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录
@ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...
随机推荐
- 关于替换“c2a0”十六进制字符的方法
一.背景:在爬取网络小说生成的文件中,发现有些空格没法替换,使用十六进制编辑器查看,发现这些空格字符的十六进制值是“c2a0”,其来源是网页控制的特殊字符,这是一个叫做Non-breaking spa ...
- Java IO实现文件(及文件夹)的复制 原创代码【精】
单个文件复制 FileInputStream input=new FileInputStream("C://360//fay.jpg"); FileOutputStream out ...
- Java实现 蓝桥杯VIP 算法训练 传球游戏
[问题描述] 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每 ...
- Java实现 洛谷 P1010 幂次方
输入输出样例 输入 #1 1315 输出 #1 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) import java.util.Scanner; pu ...
- java实现日程表
[编程题] 某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息两天. 上级要求每个人每周的工作日和休息日必须是固定的,不能在周间变更. 此外,由于工作需要,还有如下要求: 1. 所有人的连 ...
- Java实现 黑洞数
任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456.求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则 ...
- OV2640读ID全是FF问题
最近刚好在Cyclone IV上通过LVDS把一个7寸的屏点亮,赶着热度,淘宝买了OV2640这个摄像头模块,初始化因为用Vrilog比C复杂得多,易调试性不如C,所以使用STM32初始化,模块有F3 ...
- ASP.NET Core中间件与HttpModule有何不同
前言 在ASP.NET Core中最大的更改之一是对Http请求管道的更改,在ASP.NET中我们了解HttpHandler和HttpModule但是到现在这些已经被替换为中间件那么下面我们来看一下他 ...
- 浅谈Unity的脚本执行顺序
一.添加脚本的顺序 这是一张官方的脚本顺序图 一般,当我们把脚本绑定在游戏对象上时,或者点击绑定好的脚本的reset按钮时,会调用Reset() 当我们初始化一个对象时,会先调用Awake()在调用O ...
- 写了个全局变量的bug,被同事们打脸!!!
话说栈长前阵子写了一个功能,测试 0 bug 就上线了,上线后也运行好好的,好多天都没有人反馈bug,超爽.. 不出问题还好,出问题就是大问题.. 最近有个客户反馈某些数据混乱问题,看代码死活看不出什 ...