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

springboot java 项目连接es

springboot java 项目连接es

介绍

小项目,没有引用es客户端,直接使用的http的方式进行连接的,方式比较简单,但是依赖较少,一个比较小的项目,部署方便

业务也很简单就是把数据库中的数据读到es中,然后在做几个接口读es中的数据

版本

es版本 6.8.11

springboot 2.6.3

java 8

依赖

只有web和mysql的依赖,别的不需要

这里就不作介绍了,如果有需要可以私信我

开始

配置

这个是放到yml文件中的配置 就是es的地址

  es:url: http://127.0.0.1:9200/name: elasticpassword: 1234567890index: es_indexsearchSize: 1000version: 6.8.11

连接es

使用了这个类

RestTemplate restTemplate;
header

其中name和password就是配置中的

public HttpHeaders header() {HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.setContentType(MediaType.APPLICATION_JSON);httpHeaders.set("authorization", "Basic " + (new BASE64Encoder().encode((name + ":" + password).getBytes()).replaceAll("\n", "")));return httpHeaders;
}
查询

esUrl 是es的地址

index 就是索引

param 就是参数

response.getBody() 返回的是一个json对象 自己根据内容解析一下即可

public JSONObject search(JSONObject param) {String url = esUrl + "/" + index + "/_search";HttpEntity httpEntity = new HttpEntity(param.toJSONString(), header());ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JSONObject.class);return response.getBody();
}
删除
public void deleteById(String id) {String url = esUrl + "/" + index + "/_doc/" + id;restTemplate.delete(url);
}
更新
public JSONObject updateEsById(String id, JSONObject param) {String url =  esUrl + "/" + index + "/_doc/" + id + "/_update";HttpEntity httpEntity = new HttpEntity(param.toJSONString(), header());ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JSONObject.class);return response.getBody();}
保存
public void saveById(String id, JSONObject json) {String url = esUrl + "/" + index + "/_doc/" + id;HttpEntity httpEntity = new HttpEntity(json.toJSONString(), header());ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JSONObject.class);JSONObject ret = response.getBody();
}
补充

不同的版本是有差异的,具体可以在使用中根据报错进行调整

举例

es6.*版本的更新语句是这样的

esUrl + "/" + index + "/_doc/" + id + "/_update";

es7.*的是这样的

 esUrl + "/" + index + "/_update/" + id + "?refresh=true"

最后

整体的就是这样,其实主要是是restTemplate的使用,相对于es客户端使用比较简单一下(个人认为,主要是es用的不是很多)

如果大家有疑问和需要我可以后期就行补充

相关文章:

springboot java 项目连接es

springboot java 项目连接es 介绍 小项目&#xff0c;没有引用es客户端&#xff0c;直接使用的http的方式进行连接的&#xff0c;方式比较简单&#xff0c;但是依赖较少&#xff0c;一个比较小的项目&#xff0c;部署方便 业务也很简单就是把数据库中的数据读到es中&#xf…...

MySQL学习笔记3: MySQL数据库基础

目录 前言目标数据库操作&#xff08;针对database 的操作&#xff09;1. 创建数据库 create database 数据库名;2. 查看数据库 show databases;3. 选中数据库 use 数据库名;4. 删除数据库 drop database 数据库名; mysql中支持的数据类型1. 数值类型: NUMERIC(M,D)2. 字符串类…...

GB/T 17640-2023 长丝机织土工布检测

长丝机织土工布是指以合成纤维长丝为原料织制而成的土工布&#xff0c;按纤维品种分为涤纶、丙纶、锦纶 等长丝机织土工布&#xff1b;按用途分为反滤布、复合用基布、管袋布、模袋布等。 GB/T 17640-2023 长丝机织土工布测试项目&#xff1a; 测试要求 测试标准 经向抗拉强…...

MedicalGPT 训练医疗大模型,实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)

MedicalGPT 训练医疗大模型&#xff0c;实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)。 MedicalGPT: Training Your Own Medical GPT Model with ChatGPT Training Pipeline. 训练医疗大模型&#xff0c;实现了包括增量预训练、有监督微…...

UE4 C++联网RPC教程笔记(一)(第1~4集)

UE4 C联网RPC教程笔记&#xff08;一&#xff09;&#xff08;第1~4集&#xff09; 前言1. 教程介绍与资源2. 自定义 Debug 功能3. Actor 的复制4. 联网状态判断 前言 本系列笔记将会对梁迪老师的《UE4C联网RPC框架开发吃鸡》教程进行个人的知识点梳理与总结&#xff0c;此课程…...

备战蓝桥杯 Day11(滚动数组优化+完全背包)

01背包的滚动数组优化 【题目描述】 经典0—1背包问题,有n个物品&#xff0c;编号为i的物品的重量为w[i]&#xff0c;价值为c[i]&#xff0c;现在要从这些物品中选一些物品装到一个容量为m的背包中&#xff0c;使得背包内物体在总重量不超过m的前提下价值尽量大。 #include&…...

Java SE 入门到精通—4.抽象类与接口【Java】

抽象类 同接口一样&#xff0c;用来约束子类&#xff0c;限制子类必须拥有某些方法&#xff0c;比普通类多了个抽象方法&#xff0c;用抽象方法该类必为抽象类 概念 没有具体的对象&#xff0c;具体的方法的一个类 abstract关键字声明为抽象类/方法 一个类中有抽象方法则该…...

Python 开发转 Java 简易路线 - 更新中

有了 Python 开发基础&#xff0c;Java 的内容都可以快速过一遍&#xff0c;复杂地方跟着写一遍。 一、基础 1、Java 基础&#xff1a;尚硅谷 - Java基础 全部快速过一遍&#xff0c; 2、数据库&#xff1a;略。 着重 mysql 高级部分&#xff08;针对面试&#xff09;&…...

Python编程语言学习

1.Python 特点 Python是一种简单、易读、易学和高效的编程语言&#xff0c;具有以下特点&#xff1a; 简单易学&#xff1a;Python采用清晰简洁的语法&#xff0c;注重代码的可读性和可维护性&#xff0c;使得初学者能够快速上手并编写出清晰的代码。 面向对象&#xff1a;Py…...

Cartographer框架简述

catographer框架分为前端和后端 前端包括雷达数据处理&#xff1b;位姿预测&#xff1b;扫描匹配和栅格地图更新。 后端包括后端&#xff1a;线程池任务与调度&#xff1b;向位姿图添加节点&#xff0c;计算节点的子图内约束和子图间约束&#xff08;回环检测&#xff09;&…...

适用于 Linux、Windows 和 macOS 的免费 ONLYOFFICE 桌面应用程序

前言&#xff1a; 最近也是发现了一款特别好用的免费ONLYOFFICE 桌面应用程序忍不住分享给大家&#xff0c;这款编辑器能够打开、阅读和编辑多种文件类型&#xff0c;包括.docx文档、.pptx幻灯片和.xlsx表格等开放XML格式的Office文档。此外&#xff0c;ONLYOFFICE桌面编辑器还…...

C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】

C面向对象程序设计-北京大学-郭炜【课程笔记&#xff08;四&#xff09;】 1、this指针1.1、this指针的作用1.2、this指针和静态成员函数 2、静态成员变量和静态成员函数2.1、基本概念2.2、基本概念总结2.3、如何访问静态成员2.4、静态成员变量的使用场景&#xff08;重要&…...

前端构建效率优化之路

项目背景 我们的系统&#xff08;一个 ToB 的 Web 单页应用&#xff09;前端单页应用经过多年的迭代&#xff0c;目前已经累积有大几十万行的业务代码&#xff0c;30 路由模块&#xff0c;整体的代码量和复杂度还是比较高的。 项目整体是基于 Vue TypeScirpt&#xff0c;而构…...

react实现拖拽的插件

插件一&#xff1a;dnd-kit 插件官网链接https://docs.dndkit.com/introduction/installation 插件二&#xff1a;react-beautiful-dnd https://github.com/atlassian/react-beautiful-dnd/tree/master 两个插件的区别&#xff1a; 插件一可以做到从区域A拖住到区域B 插件二…...

解决Uncaught SyntaxError: Cannot use import statement outside a module(at XXX)报错

报错原因&#xff1a;这个错误通常是因为你正在尝试在一个不支持 ES6 模块语法的环境中使用 import 语句。这可能是因为你的代码是在一个只支持 CommonJS 或 AMD 模块系统的环境中运行的&#xff0c;或者你的代码运行的环境没有正确配置以支持 ES6 模块。如果是在浏览器环境&am…...

PHP如何利用post与get方式传值接收数据

目录 一、POST传值1. 使用curl库发送 POST 请求&#xff1a;2. 使用file_get_contents()函数发送 POST 请求&#xff1a;3. 使用stream_socket_client()函数发送 POST 请求&#xff1a;4. 利用from表单提交数据&#xff1a; 二、GET传值1. 使用http_build_query()函数构建 URL …...

在Mac上搭建MongoDB环境

最近工作中需要装MongoDB环境&#xff0c;搭建过程中遇到了一些问题&#xff0c;在这里记录一下安装MongoDB环境的方法以及问题的解决方法。有两种安装MongoDB的方法&#xff1a;brew安装和手动安装。 目录 使用Homebrew安装MongoDB 手动安装MongoDB&#xff08;不使用Homebr…...

第三十九天| 62.不同路径、63. 不同路径 II

Leetcode 62.不同路径 题目链接&#xff1a;62 不同路径 题干&#xff1a;一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “…...

提高代码质量的 10 条编码原则

提高代码质量的 10 条编码原则 本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 今天来聊聊提高代码质量的 10 条编码原则。 软件开发需要良好的系统设计和编码标准。我们在下图中列出了 10 条良好的编码原则。 01 遵循代码规范 我们…...

SHERlocked93 的 2017 年终总结

回家的路上有点无聊&#xff0c;简短回顾一下2017年的得失收获 开始两个月3月到5月用C#完结了一个烂尾的wpf小项目&#xff0c;对自己前半年的.net生涯也算是一个句号&#xff08;虽然不知道最后有没有采用&#xff09;&#xff0c;后面由于项目组转变技术栈&#xff0c;选择了…...

Langchain的学习(一)

目录 一,实操 编码 Runnable Runnable 是什么 核心方法(所有 Runnable 都有) 最关键能力:用 | 组合(LCEL) 常用内置 Runnable 总结 二,聊天模型-核心能力 定义模型 init_chat_model 本地部署 调用工具 定义工具-Tool version1 schema: version2(基于…...

别再让一条宽带拖慢整个公司!手把手教你用H3C防火墙配置双WAN口负载均衡(附HCL模拟器配置)

中小企业网络优化实战&#xff1a;H3C防火墙双WAN负载均衡配置指南 当视频会议频繁卡顿、文件传输速度像蜗牛爬行时&#xff0c;单条宽带已成为制约企业效率的瓶颈。对于50-200人规模的中小企业&#xff0c;双WAN负载均衡技术能以极低成本实现带宽翻倍&#xff0c;本文将用一台…...

人类的自然关系与AI的形式化关系

“人类的自然关系”与“AI的形式化关系”是理解下一代人机环境系统智能的两个核心哲学维度。它们分别代表了智能系统在物理世界中的生存根基与在数字世界中的运行逻辑。我们可以从以下三个层面来深度解析这两者的区别与融合&#xff1a;人类的自然关系&#xff1a;从“征服掠夺…...

出口欧美设备机箱:必须符合HASCO模架与DME顶针标准

在出口欧美市场的设备机箱领域&#xff0c;符合HASCO模架与DME顶针标准是至关重要的。这不仅关乎产品的质量和性能&#xff0c;还影响着企业在国际市场的竞争力。本文将深入探讨这一标准的重要性&#xff0c;并结合深圳市机汇五金制品有限公司&#xff08;以下简称“机汇五金”…...

保姆级教程:在CentOS 7上用极简包5分钟搞定openGauss数据库安装

5分钟极速部署&#xff1a;CentOS 7下openGauss数据库极简安装实战 当开发进度紧迫时&#xff0c;一个能快速搭建的数据库环境往往能挽救整个项目的时间线。本文将带您用官方极简安装包&#xff0c;在CentOS 7系统上5分钟内完成openGauss数据库的部署。这种方法特别适合需要立即…...

别再手动分色了!用MaterialIDsRandomGenerator插件5分钟搞定游戏模型贴图规划

游戏美术革命&#xff1a;用MaterialIDsRandomGenerator实现材质ID智能分配 在独立游戏开发中&#xff0c;一把生锈的骑士剑模型正静静躺在3dMax视口中。它的剑刃需要金属质感&#xff0c;剑柄需要皮革纹理&#xff0c;护手部分则需要复杂的雕花细节。传统工作流程中&#xff0…...

2026年唯一通过广电AIGC内容安全认证的3款视频生成工具(附检测报告编号+审核链路图解)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;2026年AI视频生成工具排行榜 2026年&#xff0c;AI视频生成技术已迈入“语义帧精控”与“跨模态时序对齐”新阶段。主流工具普遍支持 毫秒级动作锚点标注、 物理引擎协同渲染及 多镜头逻辑自动剪辑&#xff0c…...

告别驱动烦恼:用TI官方CCS开发MSP430,为什么比第三方IAR更省心?

嵌入式开发者的效率革命&#xff1a;为什么TI官方CCS是MSP430开发的最优解&#xff1f; 在嵌入式开发领域&#xff0c;工具链的选择往往决定了项目的启动速度和开发体验。对于MSP430系列微控制器的开发者而言&#xff0c;面对IAR、GCC和TI官方的Code Composer Studio(CCS)等多种…...

告别DLL缺失!用VS2019的Setup Project打包C++程序,保姆级配置指南

告别DLL缺失&#xff01;用VS2019的Setup Project打包C程序&#xff0c;保姆级配置指南 在C开发中&#xff0c;最令人头疼的问题之一莫过于程序在其他电脑上运行时出现"DLL缺失"的错误。这种问题不仅影响用户体验&#xff0c;也让开发者陷入反复调试的困境。本文将带…...

别再死记硬背了!用Pointer Network让AI学会‘抄作业’,搞定文本摘要和对话生成

别再死记硬背了&#xff01;用Pointer Network让AI学会‘抄作业’&#xff0c;搞定文本摘要和对话生成 想象一下&#xff0c;当你面对一篇冗长的技术文档时&#xff0c;最有效的学习方法是什么&#xff1f;不是逐字背诵&#xff0c;而是用荧光笔划出关键概念——这正是Pointer …...