ES高级用法:DeleteByQueryRequest
背景
在Elasticsearch中,delete_by_query
API 允许你基于查询条件删除文档。在Java中,你可以使用Elasticsearch的Rest High Level Client或者Transport Client来执行这个操作。
示例代码
下面是使用Rest High Level Client进行delete_by_query
操作的一个示例代码。
首先,你需要添加Elasticsearch的依赖到你的项目中。如果你使用Maven,可以添加如下依赖到你的pom.xml
文件中:
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.10.1</version>
</dependency>
确保版本与你的Elasticsearch集群版本相匹配。
下面是使用Rest High Level Client执行delete_by_query
操作的Java代码示例:
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;import java.io.IOException;public class DeleteByQueryExample {public static void main(String[] args) throws IOException {// 创建Elasticsearch客户端try (RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")))) {// 创建DeleteByQueryRequestDeleteByQueryRequest request = new DeleteByQueryRequest("your_index"); // 替换为你的索引名request.setQuery(QueryBuilders.matchQuery("field", "value")); // 替换为你的查询条件// 执行delete_by_query操作BulkByScrollResponse response = client.deleteByQuery(request, RequestOptions.DEFAULT);// 输出结果System.out.println("Deleted documents: " + response.getDeleted());} catch (Exception e) {e.printStackTrace();}}
}
在上面的代码中,我们首先创建了一个RestHighLevelClient
实例用于与Elasticsearch集群通信。接着,我们构建了一个DeleteByQueryRequest
对象,并设置了索引名和查询条件。然后,我们调用client.deleteByQuery
方法来执行删除操作,并通过BulkByScrollResponse
对象获取操作结果。
请注意,你需要根据你的具体需求替换your_index
和查询条件。另外,HttpHost
的参数应该与你的Elasticsearch集群配置相匹配。
在使用之前,请确保你的Elasticsearch集群版本与客户端库版本兼容,并且你已经正确配置了Elasticsearch的连接信息。
设置更新结果对搜索可见
为了确保delete_by_query操作后的结果能够立即对搜索可见,你可以设置RefreshPolicy为IMMEDIATE。这将导致操作完成后立即刷新索引。以下是在上面示例代码的基础上设置RefreshPolicy的方法:
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.action.support.WriteRequest;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.apache.http.HttpHost;import java.io.IOException;public class DeleteByQueryExample {public static void main(String[] args) throws IOException {// 创建Elasticsearch客户端try (RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")))) {// 创建DeleteByQueryRequestDeleteByQueryRequest request = new DeleteByQueryRequest("your_index"); // 替换为你的索引名request.setQuery(QueryBuilders.matchQuery("field", "value")); // 替换为你的查询条件// 设置RefreshPolicy为IMMEDIATErequest.setRefresh(true); // 这是简写方式// 或者更明确地使用下面的方法// request.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);// 执行delete_by_query操作BulkByScrollResponse response = client.deleteByQuery(request, RequestOptions.DEFAULT);// 输出结果System.out.println("Deleted documents: " + response.getDeleted());} catch (Exception e) {e.printStackTrace();}}
}
在DeleteByQueryRequest对象上调用setRefresh(true)或setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)会将刷新策略设置为立即刷新。这意味着一旦delete_by_query操作完成,Elasticsearch会立即刷新相关的分片,使得删除的结果可以立即被搜索到。
请注意,频繁地使用IMMEDIATE刷新策略可能会对性能产生负面影响,因为每次刷新都是一个相对昂贵的操作。因此,它应该谨慎使用,特别是在高吞吐量的生产环境中。
结尾
- 希望以上示例代码能够帮助你在Java中使用Elasticsearch的Rest High Level Client执行delete_by_query操作。
- 另外,谨慎使用立即刷新策略,特别是在高吞吐量的生产环境中。
祝你在使用Elasticsearch时顺利无阻!
相关文章:
ES高级用法:DeleteByQueryRequest
背景 在Elasticsearch中,delete_by_query API 允许你基于查询条件删除文档。在Java中,你可以使用Elasticsearch的Rest High Level Client或者Transport Client来执行这个操作。 示例代码 下面是使用Rest High Level Client进行delete_by_query操作的一…...
使用docker build构建image
文章目录 环境步骤准备例1:基本用法例2:缓存layer例3:Multi-stage例4:Mountcache mountbind mount 例5:参数例6:Export文件例7:测试 参考 环境 RHEL 9.3Docker Community 24.0.7 步骤 在Dock…...
【亲测有效】Win11 卸载MySQL5.7以及安装MySQL8.0.35
目录 一、卸载原来本地的mysql5.7 1.mysql服务部分 1.1停止mysql服务 1.2删除mysql服务 2.卸载 MySQL程序 3.残余文件的清理 3.1删除mysql安装的目录 3.2删除mysql数据存放的目录 3.3删除mysql自定义目录 4.清理注册表 5.删除环境变量配置 二、安装mysql8.0.35 1.…...
Beauty algorithm(三)腮红
查阅资料了解到腮红位于苹果肌处,同样使用关键点确定目标区域,然后对该区域进行渲染达到美妆效果。考虑到如果使用简单的RGB是很难做到特效,本篇采用模板方式进行区域融合。 一、skills 前瞻 1、png图像读取 cv::imread(imgPath, cv::IMREAD_UNCHANGED) IMREAD_UNCHANGE…...
DNS安全与访问控制
一、DNS安全 1、DNSSEC原理 DNSSEC依靠数字签名保证DNS应答报文的真实性和完整性。权威域名服务器用自己的私有密钥对资源记录(Resource Record, RR)进行签名,解析服务器用权威服务器的公开密钥对收到的应答信息进行验证。如果验证失败&…...
【LMM 011】MiniGPT-5:通过 Generative Vokens 进行交错视觉语言生成的多模态大模型
论文标题:MiniGPT-5: Interleaved Vision-and-Language Generation via Generative Vokens 论文作者:Kaizhi Zheng* , Xuehai He* , Xin Eric Wang 作者单位:University of California, Santa Cruz 论文原文:https://arxiv.org/ab…...
WEB 3D技术 three.js 顶点交换
本文 我们来说 顶点的转换 其实就是 我们所有顶点的位置发生转变 我们整个物体的位置也会随之转变 这里 我们编写代码如下 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.j…...
ROS学习笔记(11)进一步深入了解ROS第五步
0.前提 我在学习宾夕的ROS公开课的时候发现,外国的对计算机的教育和国内的是完全不一样的,当你接触了外国的课程后回头看自己学的会发现好像自己啥也没学。我这里可以放出来给大家看一下。 1.Python and C 2.Python PDB Tutorial:Python Deb…...
性能优化-OpenMP基础教程(四)-Android上运行OpenMP
本文主要介绍如何在一个常规的Android手机上调试OpenMP程序,包括Android NDK的环境配置和使用JNI编写一个OpenMP程序运行在Android手机中。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能&#…...
【转载】-财报-丈母娘教咱看财报(资产负债表-利润表-现金流量表)
写在前面 近期,在知乎看到“云峰金融”的一篇关于金融知识的文章《丈母娘教你看财报》,挺有意思的,挑出核心内容,又添加了一些内容的解释,特来分享一下。对于金融入门小白来讲,非常友好。如有不正确的地方&…...
HTML5大作业-精致版个人博客空间模板源码
文章目录 1.设计来源1.1 博客主页界面1.2 博主信息界面1.3 我的文章界面1.4 我的相册界面1.5 我的工具界面1.6 我的源码界面1.7 我的日记界面1.8 我的留言板界面1.9 联系博主界面 2.演示效果和结构及源码2.1 效果演示2.2 目录结构2.3 源代码 源码下载 作者:xcLeigh …...
数字IC后端设计实现之Innovus update_names和changeInstName的各种应用场景
今天吾爱IC社区小编给大家分享下数字IC后端设计实现innovus中关于update_names和changeInstName在PR中的具体使用方法。 update_names 1)为了避免和verilog语法保留的一些关键词,比如input,output这些,是不允许存在叫这类名字的…...
1月6日,每日信息差
1、世界最大冰雪主题乐园!哈尔滨冰雪大世界获吉尼斯世界纪录,吉尼斯世界纪录大中华地区首位认证官吴晓红宣布,哈尔滨冰雪大世界面积为816682.5平方米,是世界上最大的冰雪主题乐园,荣获一项新的吉尼斯世界纪录称号 2、…...
部署上传漏洞的靶场环境upload-labs
1、工具介绍 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 upload-labs靶场开源地址::https://…...
Linux的压缩与解压
一、tar命令 语法:tar [-c -v -x -f -z -C] 参数1 参数2 参数3 ....-c:创建压缩文件,用于压缩模式-v:显示压缩、解压过程,用于查看进度-x:解压模式-f:要创建的文件,或者要解压的文件…...
互联网大厂面试题目
阿里篇 1.1.1 如何实现一个高效的单向链表逆序输出? 1.1.2 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位 1.1.3 给定一个二叉搜索树(BST),找到树中第 K 小的节点 1.1.4 LRU缓存机制 1.1.5 关于epoll和…...
单文件上传
随着Web应用的普及,文件上传功能成为许多网站和应用不可或缺的一部分。本文整理了个人学习过程中的笔记,为开发者提供全面的了解和实践经验。 单文件上传 在早期的html应用中,都是使用form标签中嵌套来实现文件上传的,具体代码如…...
美经济学家预测,明年美股或将大跌86%,你怎么看?
年初至今,标准普尔500指数上涨25%,道琼斯指数上涨13%,以科技股为主的纳斯达克指数大涨了44%。 美国经济学家哈里斯登特近日预测,这种牛市是“100%人为印钞的结果”,而这一巨大的泡沫将在2024年破灭,届时美…...
【BIAI】lecture 3 - GD BP CNN Hands-on
GD & BP & CNN & Hands-on 专业术语 gradient descent (GD) 梯度下降 back propagation (BP) 向传播 Convolutional Neural Network (CNN) 卷积神经网络 forward propagation 前向传播 biologically symmetry 生物对称性 synaptic 突触 axon 轴突 课程大纲 The go…...
计算机Java项目|基于SpringBoot+Vue的图书个性化推荐系统
项目编号:L-BS-GX-10 一,环境介绍 语言环境:Java: jdk1.8 数据库:Mysql: mysql5.7 应用服务器:Tomcat: tomcat8.5.31 开发工具:IDEA或eclipse 二,项目简介 图片管理系统是一个为学生和…...
lenovo联想小新Pro-13 2020 Intel IML版笔记本电脑(82DN)原装出厂Win10系统镜像
链接:https://pan.baidu.com/s/1bJpfXudYEC7MJ7qfjDYPdg?pwdjipj 提取码:jipj 原装出厂Windows10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式&a…...
54、Softmax 分类器以及它的底层原理
下面开始介绍最后一个算法softmax。在前面介绍全连接算法或其他文章中,或多或少也提到了softmax。 在分类网络里,softmax的作用主要是将模型的原始输出映射到 0~1之间的概率分布。很多时候对于我们初学者而言,只知道softmax可以做概率映射,但并不了解它内部的原理是如何完…...
【React】class组件生命周期函数的梳理和总结(第一篇)
1. 前言 本篇梳理和总结一下React的生命周期函数,方便使用class组件的同学查阅,先上生命周期图谱。 2. 生命周期函数 生命周期函数说明constructor(props) 功能:如果不需要初始化state或不进行方法绑定,class组件可以不用实现构造…...
[每周一更]-(第49期):一名成熟Go开发需储备的知识点(答案篇)- 2
答案篇 1、Go语言基础知识 什么是Go语言?它有哪些特点? Go语言(也称为Golang)是一种由Google开发的开源编程语言。它于2007年首次公开发布,并在2012年正式推出了稳定版本。Go语言旨在提供简单、高效、可靠的编程解决…...
23种设计模式Python版
目录 创建型模式简单工厂模式工厂方法模式抽象工厂模式单例模式原型模式建造者模式 结构型模式适配器模式桥接模式组合模式装饰器模式外观模式享元模式代理模式 行为型模式职责链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访…...
2024年汉字小达人区级选拔备考——真题做一做:诗词连线
前面,六分成长介绍了汉字小达人区级选拔样题的第一大题看拼音写汉字,以及第二大题补充成语。这两道题都是填空题,通常在学校进行线下选拔的时候使用。这篇文章介绍第三大题:诗词连线。 诗词连线是2022年(第九届&#x…...
Vite scss 如何引入本地 字体
Vite scss 如何引入本地 字体 最近在用 Vite 改造一个旧项目 Diary,遇到了好多从 Vue 转到 Vite 的问题。 这次这个问题是: scss 里本地字体引入的问题。 一、问题描述 可以看到下面的卡片字体,本来应该是 impact 的,但现在无法…...
扩展 apiserver 连接认证 ip, apiserver证书更新
本文来自我的博客地址 文章目录 问题场景:问题分析:问题解决:查看 apiserver 证书支持的 ip 或 host使用 openssl 生成证书:再次查看 apiserver 证书支持的 ip 或 host 再次尝试将 master 加点加入参考 问题场景: k8s 1.28.1 集群后期新增 vip apiserver 证书不支持 vip 引入…...
VUE--保留小数(过滤器)
1.cutOutNum.js export const cutOutNum (num, decimals) > {if (isNaN(num) || (!num && num ! 0)) {return "-";}function toNonExponential(_num) {var m Number(_num).toExponential().match(/\d(?:\.(\d*))?e([-]\d)/);return Number(_num).toF…...
书生·浦语大模型实战营第一次课堂笔记
书生浦语大模型全链路开源体系。大模型是发展通用人工智能的重要途径,是人工通用人工智能的一个重要途径。书生浦语大模型覆盖轻量级、重量级、重量级的三种不同大小模型,可用于智能客服、个人助手等领域。还介绍了书生浦语大模型的性能在多个数据集上全面超过了相似量级或相近…...
网站域名多少钱一年/交换友链平台
Cannot make a static reference to the non-static method的解决方法 标签: referencepropertiesstringexceptionthreadimport2012-09-13 12:01 45741人阅读 评论(2) 收藏 举报分类:JAVA(38) 版权声明:本文为博主原创…...
沈阳做网站客户多吗/网址收录入口
defaultExpandAll:autoExpandParent"true":treeData"treeData"select"this.onSelect"/>data () {return {// expandedKeys: [0-0-0, 0-0-1], // 受控展开指定的树节点autoExpandParent: true, // 是否自动展开父节点// checkedKeys: [0-0-0],…...
淄博网站制作定制改版/100大看免费行情的软件
1.下列筹资工具中,发行企业可能在债券筹资基础上,同时实现普通股筹资的是()。 A.可转换债券 B.认股权证 C.分离交易可转债 D.认沽权证 2.某公司用甲材料生产A产品,甲材料标准价格是50元/千克,用量标准为5千克/件。该公司上月投产…...
莘县网站制作/seo竞价
说明前端 vue 框架不知不觉就这样火起来了,生态圈也是逐渐在完善,后台也是彻底分离了数据给前端,就类似ios 和安卓客户端一样,令人惊奇的是也拥有了前端路由这个概念,更令人兴奋的是用 webpack 打包解决了包和包依赖的…...
做网站公司联系方式页面/沧州网站建设推广
https://blog.csdn.net/qq_40996741/article/details/108654408...
资阳的网站建设/seo的目的是什么
参考资料: 基于Qt的P2P局域网聊天及文件传送软件设计 http://bbs.csdn.net/topics/390386771 分享qtffmpegsdl播放视频。 ffmpeg各种项目 https://trac.ffmpeg.org/wiki/Projects http://blog.sina.com.cn/s/blog_554f7c9501015vqx.html 用qt开发ffmpeg应用gui。…...