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()); 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/464999.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12.状态模式

文章目录 状态模式总结 状态模式 介绍 状态模式它允许一个对象在其内部状态改变时改变其行为&#xff0c;使对象看起来似乎修改了其类。状态模式的主要目的是将对象的状态封装成不同的类&#xff0c;并将对象的行为委托给当前状态。 组成 Context&#xff08;环境&#xff09;&…

开启Android学习之旅-1

最近在学习《第一行代码 Android》&#xff0c;两天看书把所有代码都敲了一遍。由于之前没有接触过 Kotlin&#xff0c;导致了囫囵吞枣&#xff0c;跟着书会敲&#xff0c;离开就忘了。Android 大佬开发的各种框架、控件好像大部分都用了 Kotlin。看他们的源码&#xff0c;理解…

UnityShader——01Shader和渲染管线

Shader和渲染管线 什么是Shader Shader中文翻译为着色器&#xff0c;是一种较为短小的程序片段&#xff0c;用于告诉图形硬件如何计算和输出图像&#xff0c;过去由汇编语言编写&#xff0c;现在也可以使用高级语言进行编写。 即&#xff0c;Shader是一种可编程图形管线的算法…

第五篇:MySQL常见数据类型

MySQL中的数据类型有很多&#xff0c;主要分为三类:数值类型、字符串类型、日期时间类型 三个表格都在此网盘中&#xff0c;需要者可移步自取&#xff0c;如果觉得有帮助希望点个赞~ MySQL常见数据类型表 数值类型 &#xff08;注&#xff1a;decimal类型举例&#xff0c;如1…

从左值和右值的角度分析a++和++a

摘自牛客上的一个题目&#xff1a; int a5,则 (a)的值是? 答案是会编译报错。 原因&#xff1a; a返回的是右值(rvalue)&#xff0c;而我们不能对一个右值进行自增操作。所以(a)会报错。 怎么理解呢&#xff1f; &#xff08;a)返回的是a在1之前的值&#xff0c;这个值是一个…

system V——进程间通信

上一篇博客中我介绍了system V进程间通信中的内存共享&#xff0c;但是其中还有两 种通信方式&#xff1a;消息队列、和信号量&#xff0c;接下来我将简单介绍一下&#xff0c;消息队列和 信号量以及操作系统是如何看待system V进程间通信的。1. 消息队列 a. 大致介绍 消息队…

Python:解析数组二分查找算法bisect

简介&#xff1a;bisect模块提供对维护一个已排序列表而无须在每次插入后对该列表重排序的支持。对于具有大量条目需要大量比较运算的长列表&#xff0c;这改进了原来的线性搜索或频繁重排序。之所以被命名为 bisect 是因为它使用了基本的二分算法来完成任务。 不同于其他搜索特…

MOCO动量编码

参考&#xff0c;推荐阅读 李沐论文精读系列三&#xff1a;MoCo、对比学习综述&#xff08;MoCov1/v2/v3、SimCLR v1/v2、DINO等&#xff09;_moco 对比学习-CSDN博客 背景 1. MOCO CVPR 2020 2. 对比学习&#xff1a;无监督学习的一种&#xff0c;重点学习同类实例中的共同…

【教3妹学编程-算法题】使数组异或和等于 K 的最少操作次数

3妹&#xff1a;2哥&#xff0c;新年好鸭~ 2哥 : 新年好&#xff0c;3妹这么早啊 3妹&#xff1a;是啊&#xff0c;新年第一天要起早&#xff0c;这样就可以起早一整年 2哥 :得&#xff0c;我还不了解你&#xff0c;每天晒到日上三竿 3妹&#xff1a;嘿嘿嘿嘿&#xff0c;一年是…

分享88个表单按钮JS特效,总有一款适合您

分享88个表单按钮JS特效&#xff0c;总有一款适合您 88个表单按钮JS特效下载链接&#xff1a;https://pan.baidu.com/s/1v-qcl8bv2kxZ8a98Xo9UAg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

Python解决SSL不可用问题

参考&#xff1a;https://blog.csdn.net/weixin_44894162/article/details/126342591 一、问题描述&#xff1a; 报错概述&#xff1a; WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ## 警告:pip配…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(4)深度学习和机器学习

关于深度学习和机器学习&#xff0c;出来包含关系之外&#xff0c;还有如上总结的知识点。 分别从特征处理、学习方法、数据依赖、硬件依赖等4个方面&#xff0c;进行了总结。 从特征处理上看&#xff1a;深度学习从数据中习得高级特征&#xff0c;并自行创建新的特征。这比普…