这里只涉及到基础使用

  1. 导包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
  1. 配置application.yml
server:
port: 8069
spring:
data:
elasticsearch:
cluster-nodes: 127.0.0.1:9300 #配置java访问elasticsearch端口
repositories:
enabled: true
cluster-name: elasticsearch #需与elasticsearch配置文件的名字一致,也可以不配置
  1. 创建普通的entity
@Data
@Document(indexName = "索引名称(只能小写)",type = "类型名")
public class Study{
private Integer id;
private String name;
private String sex;
private Integer age;
}
  1. 创建仓库 StudyRepository 并继承 ElasticsearchCrudRepository<Study, Integer>
public interface StudyRepository extends ElasticsearchCrudRepository<Study, Integer> {
}
  1. 创建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);
}

注意:

  1. 目前ElasticSearch没有7.2的jar包~~使用7.2会报找不到nodes,建议降低版本~

  2. ElasticSearch提供的可视化工具 Kibana 的版本必须与你安装的ElasticSearch版本一一对应,不然无法启动~

参考:

  1. https://segmentfault.com/a/1190000018625101

Springboot 集成 ElasticSearch 踩坑的更多相关文章

  1. springboot集成elasticsearch

    在基础阶段学习ES一般是首先是 安装ES后借助 Kibana 来进行CURD 了解ES的使用: 在进阶阶段可以需要学习ES的底层原理,如何通过Version来实现乐观锁保证ES不出问题等核心原理: 第 ...

  2. HDP 3.1.0 集成 Sqoop2 踩坑问题记录

    HDP 3.1.0 集成 Sqoop2 踩坑问题记录 本文原始地址:https://sitoi.cn/posts/65261.html 问题一 $ sqoop:000> start job -n ...

  3. centos 7( linux )下搭建elasticsearch踩坑记

    原文:https://blog.csdn.net/an88411980/article/details/83150380 概述    公司最近在做全文检索的项目,发现elasticsearch踩了不少 ...

  4. SpringBoot 集成 Elasticsearch

    前面在 ubuntu 完成安装 elasticsearch,现在我们SpringBoot将集成elasticsearch. 1.创建SpringBoot项目 我们这边直接引入NoSql中Spring ...

  5. 【原创】SpringBoot 2.7.0通过lettuce及commons-pool2 v2.9.0集成Redis踩坑记录

    背景 公司的一个项目由于HTTPS证书到期,导致小程序.POS不能正常使用.所以百度了下,通过URL检测证书有效期的代码,并自行整合到一个服务中. 代码仓库:[基于SpringBoot + 企业微信 ...

  6. Spring-boot集成RabbitMQ踩过的坑

    1.java.net.SocketException: socket closed 官方文档已经说明,新建user和guest的账户是没有远程登录的权限的 需要对登录所用账户授权 解决方法: rabb ...

  7. SpringBoot + SpringCloud学习踩坑实记

     踩的坑: 1).springcloud框架中,依赖一直报错,很可能是没有添加springcloud的依赖,或者是依赖的版本号过低.并且springboot也有一个父依赖. 2.springcloud ...

  8. springboot整合jsp踩坑

    springboot以其高效的开发效率越来越多的用在中小项目的开发,并且在分布式开发中的使用也很广泛,springboot官方推荐的前端框架却是thymeleaf,并且默认不支持jsp,而大部分jav ...

  9. Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录

    @ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...

随机推荐

  1. 练习使用shell在阿里云安装MySQL

    #!/bin/bash #阿里云初始安装MySQL #step1:查寻MariaDB 并卸载 MariaDB_filename=`rpm -qa|grep mariadb` if [ -d " ...

  2. k-means聚类分析 python 代码实现(不使用现成聚类库)

    一.实验目标 1.使用 K-means 模型进行聚类,尝试使用不同的类别个数 K,并分析聚类结果. ​ 2.按照 8:2 的比例随机将数据划分为训练集和测试集,至少尝试 3 个不同的 K 值,并画出不 ...

  3. Flutter,webview里面实现上传和下载的功能

    前提:Flutter 与 webview(vue) 一起开发的项目 开始的时候并没有想到什么移动端的,所以上传就用input,下载就用iframe来实现,然而真机实测的时候,input那个方法IOS支 ...

  4. Python编程思想(3):数字及其相关运算

    Python 提供了三种数值类型:int(整型),float(浮点型)和complex(复数). int:通常被称为整型或者整数,如200.299.10都属于整型: float:浮点数包含整数和小数部 ...

  5. Java实现 LeetCode 677 键值映射(字典树)

    677. 键值映射 实现一个 MapSum 类里的两个方法,insert 和 sum. 对于方法 insert,你将得到一对(字符串,整数)的键值对.字符串表示键,整数表示值.如果键已经存在,那么原来 ...

  6. Java实现 LeetCode 374 猜数字大小 II

    375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...

  7. Java实现 LeetCode 313 超级丑数

    313. 超级丑数 编写一段程序来查找第 n 个超级丑数. 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数. 示例: 输入: n = 12, primes = [2,7, ...

  8. Java实现 蓝桥杯 算法训练 景点游览

    试题 算法训练 景点游览 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使 ...

  9. java实现 洛谷 P1427 小鱼的数字游戏

    题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了).这对小鱼的 ...

  10. Java实现有理数的循环节

    1/7 = 0.142857142- 是个无限循环小数. 任何有理数都可以表示为无限循环小数的形式. 本题目要求即是:给出一个数字的循环小数表示法. 例如: 输入: 1,5 则输出: 0.2 输入: ...