当前位置: 首页 > news >正文

springboot集成elasticsearch

一、依赖下载

 创建好一个springboot项目,需要集成es:

因为springboot默认集成了es,但是版本号需要与本地或者服务器es的版本号一致,我本地es版本是7.14.0,所以需要在<properties></properties>中指定es版本号(这块很关键,很多因为es版本号问题连不上es服务)

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

二、创建配置文件

1、下边的配置相当于一个kibana客户端,只不过现在用代码连接es服务

//ElasticSearchConfig.java
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
// 下边的bean在链接es服务的时候需要用到,所以提前配置好
@Configuration // 这个注解相当于之前的xml
public class ElasticSearchConfig {// 注入bean@Beanpublic RestHighLevelClient restHighLevelClient() {RestHighLevelClient restHighLevelClient = new RestHighLevelClient(RestClient.builder(// es的ip 端口new HttpHost("localhost", 9200, "http")));return restHighLevelClient;}
}

三、测试

1、创建索引库

下边先注入了之前配置好的es客户端,然后创建 lxc 索引库,完之后,使用客户端执行请求。

import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.IOException;
@SpringBootTest
class DemoApplicationTests {// 注入es客户端,相当于 kabana客户端@Autowiredprivate RestHighLevelClient restHighLevelClient;@Testvoid contextLoads() {// 创建索引库 lxcCreateIndexRequest createIndexRequest = new CreateIndexRequest("lxc");// 创建好了索引库,现在需要执行这个请求,才能在es中创建 lxc 索引库try {restHighLevelClient.indices().create(createIndexRequest, RequestOptions.DEFAULT);} catch (IOException e) {throw new RuntimeException(e);}finally {try {restHighLevelClient.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

2、判断索引库是否存在

@Test
void isEist() throws IOException {// 选获取索引库GetIndexRequest getIndexRequest = new GetIndexRequest("lxc");GetIndexRequest getIndexRequest1 = new GetIndexRequest("lxc1");// 判断是否存在boolean exists = restHighLevelClient.indices().exists(getIndexRequest, RequestOptions.DEFAULT);boolean exists1 = restHighLevelClient.indices().exists(getIndexRequest1, RequestOptions.DEFAULT);System.out.println(exists); // trueSystem.out.println(exists1); // false
}

3、删除索引库

@Test
void del() throws IOException {// 创建一个删除索引库请求DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("lxc");// 执行请求AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);System.out.println(acknowledgedResponse.isAcknowledged()); 
}

相关文章:

  • MySQL 基础知识(五)之数据增删改
  • K8sGPT 的使用
  • 03、全文检索 -- Solr -- Solr 身份验证配置(给 Solr 启动身份验证、添加用户、删除用户)
  • 速盾:海外服务器用了cdn还是卡怎么办
  • 【FTP讲解】
  • 安卓价值1-如何在电脑上运行ADB
  • 【Linux学习】生产者-消费者模型
  • Day 44 | 动态规划 完全背包、518. 零钱兑换 II 、 377. 组合总和 Ⅳ
  • 使用Xdisplay将ipad作为扩展显示器Agent闪退问题
  • openstack(T版)公有云--Dashboard服务
  • whisperspeech 英文TTS的实现
  • Python学习之路-爬虫进阶:爬虫框架
  • 11.JavaScript 中如何进行隐式类型转换?
  • 2024年华为OD机试真题-计算面积-Python-OD统一考试(C卷)
  • C语言静态库深入剖析
  • hexo+github搭建个人博客
  • 【RocksDB】TransactionDB源码分析
  • C++类中的特殊成员函数
  • C学习-枚举(九)
  • Django 博客开发教程 8 - 博客文章详情页
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • SQLServer插入数据
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 回顾 Swift 多平台移植进度 #2
  • 聊聊directory traversal attack
  • 设计模式 开闭原则
  • 算法-插入排序
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 你对linux中grep命令知道多少?
  • AI算硅基生命吗,为什么?
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 回归生活:清理微信公众号
  • 说说我为什么看好Spring Cloud Alibaba
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #if 1...#endif
  • (1)虚拟机的安装与使用,linux系统安装
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (三)终结任务
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net 调用php,php 调用.net com组件 --
  • .net下简单快捷的数值高低位切换
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @angular/cli项目构建--Dynamic.Form
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [.NET]桃源网络硬盘 v7.4
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20171106]配置客户端连接注意.txt
  • [2544]最短路 (两种算法)(HDU)
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [Assignment] C++1
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)