第四阶段 32 · update_by_query / delete_by_query 条件更新删除
32 · update_by_query / delete_by_query 条件更新删除阶段第四阶段 / 写入与索引管理ESupdate_by_query/delete_by_query| PostgreSQLUPDATE ... WHERE/DELETE ... WHERE1. 概念前一篇的update/delete是按_id操作单文档。本篇的update_by_query/delete_by_query是按查询条件批量操作真正对应 SQL 的UPDATE ... WHERE和DELETE ... WHERE。更新逻辑通常用脚本painless表达。2. PostgreSQL 对照-- 条件更新UPDATEsalesdataSETstatusCLOSEDWHEREgeo_cdAPANDnet_amount0;-- 条件删除DELETEFROMsalesdataWHEREversion_numberv-old;3. ES DSL# 条件更新给匹配文档加字段 / 改值 POST salesdata_idx/_update_by_query { query: { bool: { must: [ { term: { geo_cd: AP } }, { term: { net_amount: 0 } } ] } }, script: { source: ctx._source.status params.s, params: { s: CLOSED } } } # 条件删除 POST salesdata_idx/_delete_by_query { query: { term: { version_number: v-old } } }4. Spring Boot 实现ComponentpublicclassDoc32ByQuery{AutowiredprivateElasticsearchClientelasticsearchClient;/** 条件更新UPDATE ... SET statusCLOSED WHERE geo_cd? AND net_amount0 */publiclongcloseZeroAmount(StringindexName,StringgeoCd)throwsIOException{UpdateByQueryResponserespelasticsearchClient.updateByQuery(u-u.index(indexName).query(q-q.bool(b-b.must(m-m.term(t-t.field(geo_cd).value(geoCd))).must(m-m.term(t-t.field(net_amount).value(0))))).script(sc-sc.inline(in-in.source(ctx._source.status params.s).params(s,JsonData.of(CLOSED)))).conflicts(Conflicts.Proceed));// 冲突继续而非中断returnresp.updated();}/** 条件删除DELETE WHERE version_number? */publiclongdeleteByVersion(StringindexName,Stringversion)throwsIOException{DeleteByQueryResponserespelasticsearchClient.deleteByQuery(d-d.index(indexName).query(q-q.term(t-t.field(version_number).value(version))));returnresp.deleted();}}import...core.UpdateByQueryResponse、...core.DeleteByQueryResponse、co.elastic.clients.json.JsonData、...core.search.Conflicts或_types.Conflicts。5. 坑与最佳实践是异步分批的批量操作数据量大时耗时长可用wait_for_completionfalse拿 task id 异步跟踪。版本冲突默认遇冲突中断设conflicts: proceed可跳过冲突继续。脚本性能update_by_query逐文档跑脚本海量文档慢能提前算好用 bulk 更快。不可回滚删除/更新不可逆生产前先用相同query跑_count确认影响范围。refresh需要立即可见可带refreshtrue但会影响性能。

相关新闻

OpenAI Astra 多Agent协作系统深度解析:AI团队协作的工程范式

OpenAI Astra 多Agent协作系统深度解析:AI团队协作的工程范式

OpenAI Astra 多Agent协作系统深度解析:AI团队协作的工程范式 一、引言:AI竞争的新主战场 2026年8月,据The Information爆料,OpenAI正在秘密测试一套全新模型家族,暂定名为「Astra」。Sam Altman已带着它去华盛顿做了现…

2026/10/13 5:59:12 阅读更多 →
HRTOS任务嵌套深度详解

HRTOS任务嵌套深度详解

一、任务嵌套深度是什么?在 HRTOS 中,每个任务都有一个运行嵌套深度属性,用于描述当前任务执行过程中可能进入的上下文层级。由于 8051 资源有限,尤其是内部 RAM 和堆栈空间较小,因此必须对任务运行深度进行限制。HRTO…

2026/10/13 1:13:15 阅读更多 →
MathType安装与DLL加载失败全攻略:从原理到实战解决

MathType安装与DLL加载失败全攻略:从原理到实战解决

1. 从一次令人抓狂的公式编辑经历说起 那天下午,我正赶着一份技术报告,里面充斥着各种复杂的数学公式和物理符号。Word自带的公式编辑器用起来总感觉差点意思,效率不高,格式调整也麻烦。于是,我决定安装业界公认的公式…

2026/10/7 8:39:25 阅读更多 →

最新新闻

MIPI D-PHY物理层调试:从CTS FAIL定位信号完整性根因

MIPI D-PHY物理层调试:从CTS FAIL定位信号完整性根因

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 5:58:39 阅读更多 →
Remeda 迁移指南:用纯函数 `differenceWith` 替代 Lodash 的原地可变 `pullAllWith`

Remeda 迁移指南:用纯函数 `differenceWith` 替代 Lodash 的原地可变 `pullAllWith`

开发工具 【免费下载链接】remeda A utility library for JavaScript and TypeScript. 项目地址: https://gitcode.com/gh_mirrors/re/remeda 点击查看 免费下载 导读 本指南针对 Remeda 官方 Lodash 迁移文档中 pullAllWith 条目,讲解如何将这一 Loda…

2026/10/13 5:58:39 阅读更多 →
Jupyter Notebook Exercise 扩展:用可折叠“习题/答案“组织教学 Notebook(实现原理与演进史解析)

Jupyter Notebook Exercise 扩展:用可折叠“习题/答案“组织教学 Notebook(实现原理与演进史解析)

开发工具前端 【免费下载链接】jupyter_contrib_nbextensions A collection of various notebook extensions for Jupyter 项目地址: https://gitcode.com/gh_mirrors/ju/jupyter_contrib_nbextensions 点击查看 免费下载 Exercise(及其姊妹版 Exercise…

2026/10/13 5:58:39 阅读更多 →
OCRmyPDF离线部署指南:断网内网一次搞定扫描OCR

OCRmyPDF离线部署指南:断网内网一次搞定扫描OCR

OCRmyPDF离线部署指南:断网内网一次搞定扫描OCR 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF 矿区笔记本上的那份图纸 地质…

2026/10/13 5:58:39 阅读更多 →
SpringMVC通用数据权限校验框架:从设计到实战

SpringMVC通用数据权限校验框架:从设计到实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 5:58:39 阅读更多 →
AnyPS5实战:用开源面板统一管理PS5游戏库与远程串流

AnyPS5实战:用开源面板统一管理PS5游戏库与远程串流

AnyPS5 这个名字听起来像是一台主机,其实它是我折腾的一个本地工具项目。起因很简单:我手里的游戏、账号、主机状态越来越散,数字版躺在不同账号里,光盘版挤在书架上,想远程玩一把还得分清哪台机器、哪个账号、哪次打折…

2026/10/13 5:57:39 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →