java中如何使用elasticsearch—RestClient操作文档(CRUD)
目录
一、案例分析
二、Java代码中操作文档
2.1 初始化JavaRestClient
2.2 添加数据到索引库
2.3 根据id查询数据
2.4 根据id修改数据
2.4 删除操作
三、java代码对文档进行操作的基本步骤
一、案例分析
去数据库查询酒店数据,导入到hotel索引库,实现酒店数据的CRUD基本步骤如下
- 初始化JavaRestClient
- 利用JavaRestClient新增酒店数据
- 利用JavaRestClient根据id查询酒店数据
- 利用javaRestClient删除酒店数据5.利用JavaRestClient修改酒店数据
二、Java代码中操作文档
2.1 初始化JavaRestClient
新建一个测试类,实现文档相关操作,并且完成JavaRestClient的初始化
public class ElasticsearchDocumentTest {//客户端private RestHighLevelclient client;@BeforeEachvoid setUp(){client = new RestHighLevelclient(RestClient.builder(HttpHost.create("http://192.168.15.101:9200")));}@AfterEachvoid tearDown() throws IOException {client.close();}
}
2.2 添加数据到索引库
示例代码
@Test
void testIndexDocument() throws IException {// 1.创建request对象IndexRequest request = new IndexRequest("indexName").id("1");// 2.准备JSON文档request.source("{\"namel": "Jack\","agel": 21}",XContentType.JSON);// 3.发送请求client.index(request, RequestOptions.DEFAULT);
}
先查询mysql数据,然后给这条数据创建倒排索引,完成mysql转换为索引库的数据添加:
(1)创建文档对应实体
(2)根据id查询数据库数据,并转换
2.3 根据id查询数据
根据id查询到的文档数据是json,需要反序列化为java对象
@Test
void testGetDocumentById() throws IOException {// 1.创建request对象GetRequest request = new GetRequest("indexName","1");// 2.发送请求,得到结果GetResponse response = client.get(request, RequestOptions.DEFAULT);// 3.解析结果String json = response.getSourceAsString();System.out.println(json);
}
编写代码
2.4 根据id修改数据
修改文档数据有两种方式
方式一(全量更新):再次写入id一样的文档,就会删除旧文档,添加新文档
方式二(局部更新):只更新部分字段
@Test
void testUpdateDocumentById() throws IOException {// 1.创建request对象UpdateRequest request = new UpdateRequest("indexName","1");//2.准备参数,每2个参数为一对 key valuerequest.doc("age",18,"name","Rose");//3更新文档client.update(request, RequestOptions.DEFAULT);
}
编写代码
2.4 删除操作
@Test
void testDeleteDocument() {// 1.准备RequestDeleteRequest request = new DeleteRequest( index: "hotel", id: "61083");// 2.发送请求client.deletelrequest,RequestOptions.DEFAULT);
}
三、java代码对文档进行操作的基本步骤
- 初始化RestHighLevelClient
- 创建XxxRequest。XXX是Index、Get、Update、Delete
- 准备参数 (Index和Update时需要)
- 发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete
- 解析结果(Get时需要)
相关文章:
java中如何使用elasticsearch—RestClient操作文档(CRUD)
目录 一、案例分析 二、Java代码中操作文档 2.1 初始化JavaRestClient 2.2 添加数据到索引库 2.3 根据id查询数据 2.4 根据id修改数据 2.4 删除操作 三、java代码对文档进行操作的基本步骤 一、案例分析 去数据库查询酒店数据,导入到hotel索引库࿰…...
MySQL自定义函数
MySQL自定义函数 函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程可以有0个或多个返回,函数就只能有一个返回 创建函数 #语法 参数列表包含两部分 参数名和参数类型 #函数体必须有return语句 且每个sql语句后要以;结尾 所…...
技术学习|CDA level I 数据库应用(数据操作语言DML)
数据操作语言(DML)是对表中记录进行添加、更新、删除等操作的语言。 一、添加数据 在数据表中填充数据有两种方法,第一种方法是使用insert into语句向数据表中直接录入每行数据信息,但并不常用,因为分析使用的数据很…...
关键字:instanceof关键字
在 Java 中,instanceof关键字用于检查一个对象是否是某个特定类或其子类的实例。它的语法如下: 其中,Object是要检查的对象,Class是要检查的类或接口。 instanceof关键字的返回值是一个布尔值,如果对象Object是类Cla…...
【LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置 | 二分】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
年度征文|回顾2023我的CSDN
一年转眼而逝,回顾这一年在csdn的创作,学习,记录历程。回顾过去,才能展望未来,首先看图说话。 今年在csdn的访问量已由年初的2万到年末的50w。粉丝有年初的300个左右,增加到4000个左右。我年初的目标是粉丝…...
3.无重复字符的最长子串(滑动窗口,C解答)
题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s "bbbbb&quo…...
什么是系统设计 – 学习系统设计
系统设计被定义为为系统的不同组件、接口和模块创建架构并提供有助于在系统中实现这些元素的相应数据的过程。系统设计是任何分布式系统设计背后的核心概念。 系统设计涉及识别数据源,它是描述、创建和规划框架以满足特定业务的必要性和先决条件的直觉。 为什么要…...
基于Python的城市热门美食数据可视化分析系统
温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从XX点评APP采集北京市的餐饮商铺数据,利用数据挖掘技术对北京美食的分布、受欢迎程度、评价、评论、位置等情况进行了深入分析,方便了解城市美食店…...
万字长文谈自动驾驶occupancy感知
文章目录 prologue欢迎大家点赞收藏与我交流讨论paper listVision-based occupancy :1. [MonoScene: Monocular 3D Semantic Scene Completion [CVPR 2022]](https://arxiv.org/pdf/2112.00726.pdf)2. [Tri-Perspective View for Vision-Based 3D Semantic Occupancy Predictio…...
KBDNO1.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复
不少小伙伴,求助电脑报错“KBDNO1.DLL文件缺失,软件或游戏无法启动或运行”,应该怎么办? 首先,我们先来了解“KBDNO1.DLL文件”是什么? KBDNO1.DLL是Windows操作系统中的一个动态链接库文件,主…...
计算机网络【EPOLL 源码详解】
IO多路复用 在以前,传统的网络编程是多线程模型,一个线程单独处理一个请求。 然而,线程是很昂贵的资源: 线程的创建和销毁成本很高,linux的线程实际上是特殊的进程;因此通常会使用线程池来减少线程创建和…...
第82讲:MySQL Binlog日志的滚动
MySQL Binlog日志的滚动 MySQL Binlog日志滚动指的就是产生一个新的Binlog日志,然后进行记录,因为如果都在一个Binlog中记录,查询是非常慢的,检索的效率也很低。 Binlog日志滚动有三种方法: 重启MySQL 数据库一般不重…...
2024.1.3C语言补录 宏函数
在C语言中,宏函数可以使用预处理器指令 #define 来定义。宏函数与常规函数类似,但它们在预处理阶段进行替换,而不是在运行时。 定义:#define 宏名称(参数列表) 宏体 其中: #define 是预处理器指令,用于定义宏。宏名…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Column组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Column组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Column组件 沿垂直方向布局的容器。 子组件 可以包含子组件。 接…...
快手推荐算法工程师三面回顾
快手三次技术面试一次HR面试的简单回顾,希望对大家有所启发。 一面 面试官一上来就让写算法题,第一个是计算岛屿数量,第二个是最长回文字串。 然后就是介绍自己的论文。对于论文的工作,面试官只是在问关于论文的问题࿰…...
Sonarqube安装(Docker)
一,拉取相关镜像并运行 # 拉取sonarqube镜像 docker pull sonarqube:9.1.0-community在运行之前要提前安装postgres并允许,新建数据库名为sonar的数据库 Docker安装postgres教程 docker run -d --name sonarqube --restartalways \ -p 19000:9000 \ …...
双击shutdown.bat关闭Tomcat报错:未设置关闭端口~
你们好,我是金金金。 场景 当我startup.bat启动tomcat之后,然后双击shutdown.bat关闭,结果报错了~ 排查 看报错信息很明显了,未配置关闭端口,突然想起来了我在安装的时候都选的是默认的配置,我还记得有这…...
HLS 2017.4 导出 RTL 报错:ERROR: [IMPL 213-28] Failed to generate IP.
软件版本:HLS 2017.4 在使用 HLS 导出 RTL 的过程中产生如下错误: 参考 Xilinx 解决方案:https://support.xilinx.com/s/article/76960?languageen_US 问题描述 DESCRIPTION As of January 1st 2022, the export_ip command used by Vivad…...
【Kubernetes】kubectl 常用命令
kubectl 常用命令 1.基础命令2.部署命令3.集群管理命令4.故障诊断与调试命令5.高级命令6.设置命令7.其他命令 kubectl 是 Kubernetes 提供的命令行管理工具。通过使用 kubectl,可以管理和操作 Kubernetes。 1.基础命令 命令 说明 create通过文件名或标准输入创建 …...
鸿蒙开发第一天
一、开发准备工作 1、开发工具的安装 1)下载地址:https://developer.huawei.com/consumer/cn/deveco-studio/ 2)查询API文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/syscap-00000014080893…...
Midjourney表情包制作及变现最全教程
盘点Midijourney(AIGF)热门赚米方法,总有一种适合你之AI绘画操作技巧及变现渠道剖析 【表情包制作】 首先我们对表情包制作进行详细的讲解: 当使用 Midjourney(AIGF) 绘画来制作表情包时,你可以…...
UNIAPP中借助store+watch完成实时数据
简介 手机端蓝牙连接校验仪,校验仪上传校验数据至手机完成展示。基于watch,完成实时展示数据。对象放在store中。实现分为store中的配置,数据接收,数据展示 store配置 在state中配置属性,在mutations中配置更新方法…...
COLMAP 三维重建 笔记
目录 安装COLMAP 需要设置环境变量 COLMAP数据下载 使用ColmapOpenMVS进行物体的三维重建 安装COLMAP 1.1 下载Colmap:https://demuc.de/colmap/#download 选择cuda版本的进行下载。 1.2 下载OpenMVS,可以选择下载源码自行编译也可以选择封装好的可…...
即时设计:一键查看设计稿与页面差异,让设计师的工作更便捷高效
设计稿走查 在设计工作中,对设计稿和实际页面进行对比是必不可少的环节。然而,传统的对比方式往往耗时耗力,无法精确测量差异。为了解决这个问题,我们推出了一款强大的工具,它可以通过图片对比,轻松查看设…...
知识库问答LangChain+LLM的二次开发:商用时的典型问题及其改进方案
前言 如之前的文章所述,我司下半年成立大模型项目团队之后,我虽兼管整个项目团队,但为让项目的推进效率更高,故分成了三大项目组 第一项目组由霍哥带头负责类似AIGC模特生成系统第二项目组由阿荀带头负责论文审稿GPT以及AI agen…...
Mac内心os:在下只是个工具,指望我干人事?
呜呜呜,今天去医院看病了,乌央央的好多人。最近在研究苹果开发者工具中的HealthKit,等我研究透给大家安利。今天还是继续闲聊吧😂😂提前感谢大家体谅我这个病号,发射小红心,biubiubiu~ 据说&am…...
2024年最新远程控制软件
远程控制软件是一种技术工具,允许用户通过互联网远程控制他人的计算机。该软件通常用于公司或个人远程管理其他计算机的功能。它们允许用户远程操作他人电脑上的程序、文件或网页,或查看目标计算机的屏幕图片和其他信息。因此,该软件也广泛应…...
华为鸿蒙应用--文件管理工具(鸿蒙工具)-ArkTs
0、代码 import fs from ohos.file.fs; import { Logger } from ./Logger; import { Constants } from ../constants/Constants; import { toast } from ./ToastUtils;export class FileUtils {/*** 获取目录下所有文件* param filesDir* returns*/static getFiles(filesDir: …...
Python基础语法笔记 tkinter的简单使用
语法 物质 动态类型语言,不需要声明类型 数字 类型int float bool 操作 //整除 **幂 字符串 str1 "Hello python" str2 "world" print(str1 * 3) # 重复输出 print(str1[1]) # 索引访问 print(str1 " " str2) # 拼接 print(str1[2…...
请专业做网站的老师/最新最好的磁力搜索
HBase版本:0.94.15-cdh4.7.0 在 HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入、删除、查询数据都需要先找到相应的 RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Cli…...
使用net域名的大网站/百度关键词搜索排行榜
1. static全局便娘与普通全局变量有什么区别?static局部变量和普通局部变量有什么区别?satic函数与普通函数有什么区别?static全局变量只初使化一次,防止在其他文件单元中被引用(修改链接属性);static局部变量只被初始化一次,下一…...
wordpress 中文客户端/客服外包
Docker三大编排工具: Docker Compose:是用来组装多容器应用的工具,可以在 Swarm集群中部署分布式应用。 Docker Machine:是支持多平台安装Docker的工具,使用 Docker Machine,可以很方便地在笔记本、云平台…...
电影网站怎么做的/腾讯广告平台
查询与匹配 Stream提供了allMatch(), anyMatch(), noneMatch(), findFirst(), findAny()功能,用于实现条件匹配与查询,一起来看看。 anyMatch() anyMatch用于确认“有没有符合条件的元素?” 有->true->至少有一个符合要求 没有->…...
网站开发论文答辩/手机百度免费下载
可搜索加密技术允许用户搜索自己储存在云端的加密文件, 同时保证加密文件和自己搜索的关键词隐私。大多数这方面的研究致力于研发高效的可搜索加密技术。为了提高效率,这些可搜索加密技术定义了一些可以允许的关于加密文件和加密搜索词的信息泄露。但是&…...
用数据库做新闻网站系统/榆林seo
1. 访问DDR3我们使用名为DDR3-test.c的PetaLinux应用访问DDR3存储器。该应用经过精心设计,可向DDR存储器位置写入数据并从这里读取数据。DDR3是双列直插式存储器模块,可提供用于存储用户代码和数据的SDRAM。如上文所述,用户需要知道DDR存储器…...