三.SpringBoot整合Elasticsearch

SpringBoot整合Elasticsearch

  • 前言
  • 一.java调用es的方式和工具
  • 二.java集成Elasticsearch-Rest-Client
    • 1.引入pom
    • 2.导入版本不一致问题
    • 3.编写配置类
    • 4.测试类
      • 4.1 执行前
      • 4.2 执行后
    • 5.其他篇章

前言

我们整合es直接给es发请求就可以了,但是现在有很多方式去调用es的接口,那都有那些呢?

一.java调用es的方式和工具

访问es端口访问方式使用工具缺点
9300TCPtransport-api.jar不适配es版本,es 8.0之后弃用。
9200HTTPJestClient非官方,对应es版本更新慢。
9200HTTPRestTemplate模拟发送http请求,但是很多请求需要自己封装。
9200HTTPHttpClient模拟发送http请求,但是很多请求需要自己封装。
9200HTTPElasticsearch-Rest-Client官方RestClient,封装了es的操作,API层次分明,上手简单。

二.java集成Elasticsearch-Rest-Client

Elasticsearch-Rest-Client官方文档

1.引入pom

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.3.1</version>
</dependency>

2.导入版本不一致问题

比如你想导入 7.3.1版本的,但是你导入之后发现不是7.3.1版本的。
原因: 因为springboot默认对Elasticsearch版本进行了引入。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.编写配置类

@Configuration
public class EsConfig {//发送请求时的请求设置项(全局通用)public static final RequestOptions COMMON_OPTIONS;static {RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();//通用设置
//        builder.addHeader("Authorization", "Bearer " + TOKEN);
//        builder.setHttpAsyncResponseConsumerFactory(
//                new HttpAsyncResponseConsumerFactory
//                        .HeapBufferedResponseConsumerFactory(30 * 1024 * 1024 * 1024));COMMON_OPTIONS = builder.build();}//注入@Beanpublic RestHighLevelClient config(){RestClientBuilder builder = null;//es的ip、访问的端口号、网络协议builder = RestClient.builder(new HttpHost("127.0.0.1",9200,"http"));RestHighLevelClient client = new RestHighLevelClient(builder);return client;}
}

4.测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class test {@AutowiredRestHighLevelClient restClient;//测试从java保存数据到es@Testpublic void testEs() throws IOException {IndexRequest indexRequest = new IndexRequest("ikun");indexRequest.id("1");Kunkun kunkun = new Kunkun();kunkun.setJineng("唱跳rap篮球");kunkun.setName("小black子");//把对象转为json字符串String s = JSON.toJSONString(kunkun);//保存的数据indexRequest.source(s, XContentType.JSON);//执行保存的操作(同步操作,文档里面有写异步请求)IndexResponse index = restClient.index(indexRequest, EsConfig.COMMON_OPTIONS);}@Dataclass Kunkun {private String jineng;private String name;}
}

4.1 执行前

在这里插入图片描述

4.2 执行后

在这里插入图片描述

5.其他篇章

一.Elasticsearch快速入门及使用

二.Elasticsearch进阶

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

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

相关文章

实战项目——多功能电子时钟

一&#xff0c;项目要求 二&#xff0c;理论原理 通过按键来控制状态机的状态&#xff0c;在将状态值传送到各个模块进行驱动&#xff0c;在空闲状态下&#xff0c;数码管显示基础时钟&#xff0c;基础时钟是由7个计数器组合而成&#xff0c;当在ADJUST状态下可以调整时间&…

HTML5 Canvas和Svg:哪个简单且好用?

HTML5 Canvas 和 SVG 都是基于标准的 HTML5 技术&#xff0c;可用于创建令人惊叹的图形和视觉体验。 首先&#xff0c;让我们花几句话介绍HTML5 Canvas和SVG。 什么是Canvas? Canvas&#xff08;通过 标签使用&#xff09;是一个 HTML 元素&#xff0c;用于在用户计算机屏幕…

kubernetes中最小组件——Pod

目录 一、Pod简介 二、Pod的使用方式 三、Pause——Pod中底层基础容器 四、为什么kubernetes这样设计Pod 五、Pod的分类 1.自主式Pod 2.控制器管理的Pod 3.静态Pod 六、Pod容器的分类 1. 基础容器&#xff08;infrastructure container&#xff09; 2. 初始化容器&am…

Reinforcement Learning with Code 【Chapter 10. Actor Critic】

Reinforcement Learning with Code 【Chapter 10. Actor Critic】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of …

pc端网页用vue并且实现响应式 vue+bootstrap-vue

1、hbuiler内新建vue项目 在项目文件夹下用npm加载依赖&#xff08;或者用hbuilder内打开命令&#xff09; 2、配置路由 src内新建router文件夹&#xff0c;router内新建index.js index.js内配置重定向到首页 main.js内配置路由 import router from /router/index.js new…

java获取到heapdump文件后,如何快速分析?

简介 在之前的OOM问题复盘之后&#xff0c;本周&#xff0c;又一Java服务出现了内存问题&#xff0c;这次问题不严重&#xff0c;只会触发堆内存占用高报警&#xff0c;没有触发OOM&#xff0c;但好在之前的复盘中总结了dump脚本&#xff0c;会在堆占用高时自动执行jstack与jm…

9.3.2.1网络原理(UDP)

1.UDP的基本特点:无连接,不可靠传输,面向数据报,全双工. 2.1~1024的端口号有特定的含义,不建议使用.比如21:ftp,22:ssh,80:http,443:https. 3.CRC校验算法:循环冗余校验和,把UDP报中的每个字节都依次进行累加,把累加的结果,放到两个字节的变量中,溢出也无所谓,因为都加了一遍.…

基于python+MobileNetV2算法模型实现一个图像识别分类系统

一、目录 算法模型介绍模型使用训练模型评估项目扩展 二、算法模型介绍 图像识别是计算机视觉领域的重要研究方向&#xff0c;它在人脸识别、物体检测、图像分类等领域有着广泛的应用。随着移动设备的普及和计算资源的限制&#xff0c;设计高效的图像识别算法变得尤为重要。…

oracle的管道函数

Oracle管道函数(Pipelined Table Function)oracle管道函数 1、管道函数即是可以返回行集合&#xff08;可以使嵌套表nested table 或数组 varray&#xff09;的函数&#xff0c;我们可以像查询物理表一样查询它或者将其赋值给集合变量。 2、管道函数为并行执行&#xff0c;在…

Python 中的机器学习简介:多项式回归

一、说明 多项式回归可以识别自变量和因变量之间的非线性关系。本文是关于回归、梯度下降和 MSE 系列文章的第三篇。前面的文章介绍了简单线性回归、回归的正态方程和多元线性回归。 二、多项式回归 多项式回归用于最适合曲线拟合的复杂数据。它可以被视为多元线性回归的子集。…

【C语言】小游戏-三字棋

大家好&#xff0c;我是深鱼~ 目录 一、游戏介绍 二、文件分装 三、代码实现步骤 1.制作简易游戏菜单 2.初始化棋盘 3.打印棋盘 4.玩家下棋 5.电脑随机下棋 6.判断输赢 7.判断棋盘是否满了 四、完整代码 game.h(相关函数的声明&#xff0c;整个代码要引用的头文件以及宏…

CSS 中的优先级规则是怎样的?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐内联样式&#xff08;Inline Styles&#xff09;⭐ID 选择器&#xff08;ID Selectors&#xff09;⭐类选择器、属性选择器和伪类选择器&#xff08;Class, Attribute, and Pseudo-class Selectors&#xff09;⭐元素选择器和伪元素选择器…