026 elasticsearch文档管理(添加、修改、删除、批处理)-Java原生客户端

文章目录

    • 1.添加文档
    • 2.更新文档
    • 3.删除文档
    • 4.根据id取文档对象
    • 5.批量操作bulk

1.添加文档

使用RestHightLevelClient对象
使用client对象的index方法添加文档
创建IndexRequest对象,其中包含了索引库名称、文档的id、文档的内容

{"id":"1","title":"测试文档1","content":"测试文档中的内容"}
package com.xd.cubemall.es;import org.apache.http.HttpHost;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;public class DocumentManager {private RestHighLevelClient client;@BeforeEachpublic void init() {//创建一个client对象client = new RestHighLevelClient(RestClient.builder(new HttpHost("1.1.1.1",9200),new HttpHost("2.2.2.2",9200),new HttpHost("3.3.3.3",9200)));}@Testpublic void addDocument() throws Exception{String document = "{\"id\":\"1\",\"title\":\"测试文档1\",\"content\":\"测试文档中的内容\"}";//创建IndexRequest对象,其中包含了索引库名称、文档id、文档的内容IndexRequest indexRequest = new IndexRequest(/**"hello1"**/).index("hello1").id("1").source(document, XContentType.JSON);IndexResponse response = client.index(indexRequest, RequestOptions.DEFAULT);System.out.println(response);}}

2.更新文档

使用client对象的update方法。
需要UpdateRequest参数:
1.更新的索引
2.更新的文档的id
3.更新的文档内容

    @Testpublic void updateDocument() throws Exception {String document = "{\"id\":\"1\",\"title\":\"测试文档2\",\"content\":\"测试文档中的内容2\"}";UpdateRequest request = new UpdateRequest().index("hello1").id("1").doc(document,XContentType.JSON);UpdateResponse response = client.update(request, RequestOptions.DEFAULT);System.out.println(response);}

3.删除文档

使用client的delete方法
需要DeleteRequest对象,需要三个参数
1.操作的索引
2.文档的id

    @Testpublic void deleteDocument() throws Exception {DeleteRequest request = new DeleteRequest("hello1","1");client.delete(request, RequestOptions.DEFAULT);}

4.根据id取文档对象

使用client对象的get方法
需要使用GetRequest对象,两个参数:
1.操作的索引
2.文档的id

    @Testpublic void getDocument() throws Exception {GetRequest request = new GetRequest("hello1","2");GetResponse response = client.get(request, RequestOptions.DEFAULT);System.out.println(response);}

5.批量操作bulk

使用client对象的bulk方法
BulkRequest对象,使用add方法,添加要批量处理的请求。
支持的处理:
IndexRequest
DeleteRequest
UpdateRequest

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;@Testpublic void bulkDocument() throws Exception {String json = "";JSONArray jsonArray = JSONObject.parseArray(json);BulkRequest request = new BulkRequest();jsonArray.stream().forEach(j->{IndexRequest r = new IndexRequest().index("hello1").id(((JSONObject)j).getString("id")).source(((JSONObject) j).toJSONString(),XContentType.JSON);request.add(r);});BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);System.out.println(response);   }             

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

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

相关文章

MoH:融合混合专家机制的高效多头注意力模型及其在视觉语言任务中的应用

在深度学习领域,多头注意力机制一直是Transformer模型的核心组成部分,在自然语言处理和计算机视觉任务中取得了巨大成功。然而,研究表明并非所有的注意力头都具有同等重要性,许多注意力头可以在不影响模型精度的情况下被剪枝。基于这一洞察,这篇论文提出了一种名为混合头注意力…

DS快速排序和归并排序的非递归实现(16)

文章目录 前言一、快排的非递归实现二、归排的非递归实现总结 前言 打破递归桎梏,迎接迭代解放! 一、快排的非递归实现 我们要替代递归,就要用到迭代或者循环,也就是说,其核心思想是不变的,只是换一种方式来…

使用 CDN 后 Apache 的日志记录客户真实 IP

经常搭建网站服务器的都知道,在给站点使用了 CDN 后 Web 应用的日志记录里就会只记录 CDN 节点 IP 了,这就没法看到真实客户请求 IP,对于日志分析、运维日常维护来说就有点儿麻烦了,今天明月结合在五洛云服务器上搭建的Apache环境…

探索C嘎嘎:模版初阶

前言: 小编在前文讲述了C的内存管理,下面我们来开始继续探索C,开启C又一个重要的内容,模版初阶的详解,代码时间到! 目录 1.泛型编程 1.1.引子 1.2.泛型编程 2.函数模版 2.1.函数模版的概念 2.2.函数模版的格…

基于知识图谱的电子元器件问答系统

你还在为寻找电子元器件的相关信息头疼吗?作为一名程序员或电子工程师,在项目中经常需要快速查询电子元件的属性或关联关系。今天给大家介绍一个可以大大提升工作效率的神器——基于知识图谱的电子元器件问答系统。这不仅是你学习和工作的好帮手&#xf…

解读华为云Kuasar多沙箱容器技术,带来更强隔离性和安全性

摘要:沙箱技术的引入,为容器提供了更强的隔离性和安全性,成为云原生技术的重要组成部分。 本文来源 《华为云DTSE》第五期开源专刊,作者:华为云云原生开源团队研发工程师。 近年来,云原生容器技术飞速发展&…

详解Java之异常

目录 防御式编程 捕获异常 基础语法 示例1 【不处理异常】 示例2 【使用try catch捕获异常】 示例3 【catch只能处理对应的异常】 示例4 【catch可以有多个】 示例5 【可以用一个catch捕获所有异常】 示例6 【finally一定会执行】 示例7 【使用try回收资源】 示例8 …

鸿蒙网络编程系列24-Web组件与应用互操作示例

1. APP内嵌网页与应用互操作概述 在通常的APP开发中,经常会采用内嵌网页的形式,通过网页来展现丰富的动态内容,虽少了很多原生开发的功能,但是这么做无可厚非,毕竟APP需要适配的系统平台很多,比如安卓、苹…

【HarmonyOS NEXT】权限申请及应用设置页跳转

关键词:鸿蒙、程序访问控制、定位、应用详情页、startability、want 在app开发过程中,常进行系统权限的申请以提供设备访问或个性化功能(如扫一扫、城市定位、剪贴板等),从而保障应用功能的完整性,那么本期…

Jupyter notebook和Conda使用

Jupyter notebook和Conda使用 文章目录 Jupyter notebook和Conda使用AnacondaJupyter notebook简介页面使用技巧编写格式自动补全查看函数文档魔术命令远程访问交互式 Anaconda Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项…

stm32实现esp8266连接到TCP服务器(二)未完

1.2 连接到TCP Server 1.2.1 使用网络助手,设立TCP服务器 ​ 编辑 1.2.2 连接服务器 ATCIPSTART"TCP","192.168.1.18",8080 //指令,注意双引号逗号都要半角(英文)输入 CONNECT //结果:成功 OK //结果:成功 …

jmeter中用csv data set config做参数化2

在jmeter中,使用csv data set config进行参数化是很重要的一个功能,但是这个功能的使用需要十分仔细和小心,因为细节之处往往决定着结果的正确与否。 举例: 一个登录接口用加密密码登录,一个登录接口用原始密码登录。…

STM32G4系列MCU的低功耗模式介绍

目录 概述 1 认识低功耗模式 1.1 低功耗模式的应用 1.2 低功耗模式介绍 2 低功耗模式的状态关系 2.1 低功耗模式可能的转换状态图 2.2 低功耗模式总结 3 运行模式 3.1 减慢系统时钟 3.2 外围时钟门控 3.3 低功耗运行模式(LP运行) 概述 本文主…

JavaFx学习--chapter02(网络对话)

chapter02(网络对话) 简单网络对话程序 设计任务:客户端向服务器发送字符串,并能读取服务器返回的字符串。 知识点:TCP套接字技术,C/S软件架构程序设计 重点理解:Java客户套接字类Socket和服务器套接字类ServerSoc…

蜜罐技术的出现究竟影响了什么

自网络诞生以来,攻击威胁事件层出不穷,网络攻防对抗已成为信息时代背景下的无硝烟战争。然而,传统的网络防御技术如防火墙、入侵检测技术等都是一种敌暗我明的被动防御,难以有效应对攻击者随时随地发起的无处不在的攻击和威胁。蜜…

linux线程 | 同步与互斥 | 互斥(下)

前言:本篇文章主要讲述linux线程的互斥的知识。 讲解流程为先讲解锁的工作原理, 再自己封装一下锁并且使用一下。 做完这些就要输出一堆理论性的东西, 但博主会总结两条结论!!最后就是讲一下死锁。 那么, 废…

什么是 Idempotence 以及它在哪里使用?

大家好,我是锋哥。今天分享关于【什么是 Idempotence 以及它在哪里使用?】面试题?希望对大家有帮助; 什么是 Idempotence 以及它在哪里使用? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Idempotence&am…

【C++STL】list的基本介绍与使用方式

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 一、list的介绍 文档内容以及大致翻…

ESP32-IDF 非易失存储 NVS

目录 零、前言一、基本介绍1、配置结构体1.1 nvs_entry_info_t 2、常用 API2.1 nvs_flash_init2.2 nvs_flash_init_partition2.3 nvs_flash_init_partition_ptr2.4 nvs_flash_erase2.5 nvs_flash_erase_partition2.6 nvs_flash_erase_partition_ptr2.7 nvs_flash_generate_keys…

element plus中menu菜单技巧

我在使用element plus的menu(侧边栏)组件的过程中遇到了一些问题,就是menu编写样式和路由跳转,下面给大家分享以下,我是怎么解决的。 1.页面效果 我要实现的网站布局是这样的: 侧边栏折叠以后的效果&#…