ES: 数据增,删,改,批量操作
1> 指定id 新增
_id =1 新增一条.
此命令重复执行,就是更新id=1的数据
POST employee_zcy/_doc/1
{"uid" : "1234","phone":"12345678909","message" : "qq","msgcode" : "1","sendtime":"2019-03-14 01:57:04","saymessage":"zcy11111111111"
}
2> 不指定id 新增
_id是随机的字符串
此命令重复执行,就是不断新增
POST projecy_zcy/_doc
{"projectCode":"31000012","projectName":"xxxx12"}
下面的示例不指定id,则返回的数据中id是随机的字符串;
3> 指定id更新
更新整个文档, 和新增一样
POST employee_zcy/_doc/1
{"uid" : "1234","phone":"12345678909","message" : "qq","msgcode" : "1","sendtime":"2019-03-14 01:57:04","saymessage":"zcy11111111111"
}POST employee_zcy/_doc/1
{"uid" : "1234567"}那么文档1的内容就:
{"uid" : "1234567"}
4> 按照id,更新文档中部分字段
POST employee_zcy/_update/3
{"doc" : {"message":"qq456222","age":13}
}修改了id是3的 message,结果:
修改了主键=3的中message 为 qq456111, 新增了age字段
5> 按照id, 使用脚本更新部分字段,支持参数param,支持拼接更新
POST projecy_zcy/_update/10
{"script": {"source": "ctx._source.projectCode=1234567;ctx._source.projectPerson+=params.personName ","params": {"personName":"zcy"}}}修改_id=10的, projectCode的值, 新增projectPerson的,可以用参数变量进行字符处理POST projecy_zcy/_update/4
{"script": {"source": "ctx._source['message'] = '123'; ctx._source.age=14"}
}
6> 按照id, 使用脚本删除字段
POST projecy_zcy/_update/10
{"script": {"source": "ctx._source.remove('projectPerson')"}}
7> 根据条件修改, 多条数据更新, 更改部分字段
POST employee_zcy/_update_by_query
{"query": {"term": {"phone": "12345678909"}} ,"script": {"source": "ctx._source['message'] = '1234566666'"}
}-- 搜索projectName like 管理域 , 增加flag值
POST projecy_zcy/_update_by_query
{"query": {"match": {"projectName": "管理域"}},"script":{"source":"ctx._source.flag='abc'"}}
8> 按照id, 更新不存在的
此id,不存在,会报错
POST projecy_zcy/_update/16
{"script": {"source": "ctx._source.projectCode=1234567 ","params": {"personName":"zcy"}}
}报错:
{"type" : "document_missing_exception","reason" : "[_doc][16]: document missing","index_uuid" : "P--CS2RRStmmvjoicjFnmw","shard" : "0","index" : "projecy_zcy"
如何不报错? 我们可以使用 upsert 参数,指定如果文档不存在就应该先创建它
POST projecy_zcy/_update/15
{"script": {"source": "ctx._source.projectCode=1234567;ctx._source.projectPerson+=params.personName ","params": {"personName":"zcy"}},"upsert": {"projectCode":234,"projectPerson":"345"}}id=15 不存在, 先初始化projectCode, projectPerson
第一次执行:
{"_index" : "projecy_zcy","_type" : "_doc","_id" : "15","_score" : 1.0,"_source" : {"projectCode" : 234,"projectPerson" : "345"}}第二次执行:
{"_index" : "projecy_zcy","_type" : "_doc","_id" : "15","_score" : 1.0,"_source" : {"projectCode" : 1234567,"projectPerson" : "345zcy"}}
9> 按照条件,无匹配的更新
不好报错, 没有任何数据更新, 和关系数据库一样
10> 统一脚本
POST projecy_zcy/_update/15
{"script": {"source": "ctx._source.projectCode=1234567;ctx._source.projectPerson+=params.personName ","params": {"personName":"zcy"}},"upsert": {"projectCode":234,"projectPerson":"345"}}优化:
1.需要先将脚本post到es的库中,新建zcy_message,脚本名称
POST _scripts/zcy_script1
{"script":{"lang":"painless","source": "ctx._source.projectCode=1234567;ctx._source.projectPerson+=params.personName "}
}lang: 必须有,否则报错
params: 不需要放, 放了也不生效2.根据id来调用
POST projecy_zcy/_update/15
{"script": {"id": "zcy_script1","params": {"personName":"aaa"}}, "upsert": {"projectCode":234,"projectPerson":"345"}}
11> 根据主键删除数据
DELETE employee_zcy/_doc/1注意_doc 就是type的值, 插数据时候指定的
POST employee_zcy/_doc/1
2>根据条件删除数据
POST employee_zcy/_delete_by_query
{"query":{"term":{"phone":"12345678909"}}
}
12>bulk的操作
- create 如果文档不存在就创建,但如果文档存在就返回错误
- index 如果文档不存在就创建,如果文档存在就更新
- update 更新一个文档,如果文档不存在就返回错误
- delete 删除一个文档,如果要删除的文档id不存在,就返回错误
其实可以看得出来index是比较常用的。还有bulk的操作,某一个操作失败,是不会影响其他文档的操作的,它会在返回结果中告诉你失败的详细的原因。
>> 批量新增
POST projecy_zcy/_bulk
{"index":{"_id":1}}
{"id":1,"name":"admin","counter":"10","tags":["red","black"]}
{"index":{"_id":2}}
{"id":2,"name":"zcy"}
>> 批量修改
POST projecy_zcy/_bulk
{"update":{"_id":1}}
{"script":{"source":"ctx._source.name='www'"}}
{"update":{"_id":1}}
{"script":{"source":"ctx._source.name='zzzz'"}}
>> 批量删除
POST projecy_zcy/_bulk
{"delete":{"_id":2}}
{"delete":{"_id":1}}
相关文章:
ES: 数据增,删,改,批量操作
1> 指定id 新增 _id 1 新增一条. 此命令重复执行,就是更新id1的数据 POST employee_zcy/_doc/1 {"uid" : "1234","phone":"12345678909","message" : "qq","msgcode" : "1","send…...
伯努利方程示例 Python 计算(汽水流体和喷泉工程)
伯努利原理 在流体的水平流动中,流体速度较高的点比流体速度较慢的点具有更小的压力。 不可压缩流体在到达狭窄的收缩部分时必须加速,以保持恒定的体积流量。 这就是为什么软管上的窄喷嘴会导致水流加速的原因。 但有些事情可能会困扰您这一现象。 如果…...
2022年中职网络安全竞赛——应用服务漏洞扫描与利用解析(详细)
应用服务漏洞扫描与利用 任务环境说明: 服务器场景:Server2115服务器场景操作系统:未知(关闭链接)使用命令nmap探测目标靶机的服务版本信息,将需要使用的参数作为FLAG进行提交;通过上述端口访问靶机系统并探测隐藏的页面,将找到的敏感文件、目录名作为FLAG(形式:[敏…...
yyds,Elasticsearch Template自动化管理新索引创建
文章目录一、什么是Elasticsearch Template?二、Elasticsearch Template的用法2.1、创建模板2.2、验证模板2.3、应用模板2.4、删除模板2.5、组合模板2.6、如何在同一个模板中定义多种匹配模式2.7、模板优先级2.8、提前模拟索引的最终映射三、Elasticsearch Template…...
蓝桥杯嵌入式ADC与DAC(都不需要中断)
目录 1.原理图 (1)ADC的原理图 (2)DAC的原理图 2.STM32CubeMX的配置 (1)ADC的配置 (2)DAC配置 3.代码部分 (1)ADC代码 (2)DA…...
网络视频的防盗与破解
网络视频(Web 视频)是指利用 HTML5 技术在浏览器中播放的视频,这类视频资源通常可以被随意下载,某些行业(比如教培行业)如果希望保护自己的视频资源不被下载,就需要对视频做防盗链处理。 防盗链需要着重加强两个方面的安全性:网络传输和客户端。 网络传输安全 网络传…...
FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(二)
通过上面的介绍相信大家对数字变频已经有了一个较为整体性的认识,下面笔者来对照XILINX的DDS IP核对数字变频技术展开更进一步的说明,做到了理论和实践很好地结合,这样大家再带入Modelsim进行仿真测试就不仅掌握了数字变频的理论知识…...
接口中新增方法,接口应用和适配器设计模式
目录 JDK8以后接口中新增方法 接口中默认方法注意事项: 新增方法static 接口中静态方法的注意事项: JDK9新增的方法 JDK8以后接口中新增方法 允许在接口中定义默认的方法,需要使用关键字default修饰作用:解决接口升级的问题 …...
自主HttpServer实现(C++实战项目)
文章目录项目介绍CGI技术概念原理设计框架日志文件TCPServer任务类初始化与启动HttpServerHTTP请求结构HTTP响应结构线程回调EndPoint类EndPoint主体框架读取HTTP请求处理HTTP请求CGI处理非CGI处理构建HTTP响应发送HTTP响应接入线程池简单测试项目扩展项目介绍 该项目是一个基…...
第26篇:Java数组API总结
目录 1、数组基本概念 2、Java如何声明数组 2.1中括号在数据类型之前 2.2 中括号在数据类型之后...
[C++] 信号
前言 信号与槽是QT的一个概念,原版C里并没有 使用 先声明一些类 Receiver负责接收信号,Emitter2则是负责发送 class Receiver : public ntl::Reflectible { public:void received(int num){std::cout << "received:" << num &…...
单片机——矩阵按键模块
主要目的 学会按键扫描 1.延时函数 延时函数部分详见链接: 单片机控制一盏灯的亮与灭程序解释 void delay (uint k) //定义延时函数{uint i,j;for(i<0;i<k;i){for(j0;j<113;j){;}}}这个程序里面的延时函数的目的是按键消抖。 2.按键扫描模块 这是本次实验的重点&a…...
Android学习之网络操作
网络操作 Android平台下的原生网络操作可以分为以下几步: 创建URL对象;通过URL对象获取HttpURLConnection对象;通过HttpURLConnection对象设置请求头键值对、网络连接超时时间等;通过HttpURLConnection对象的connect()方法建立网…...
Delphi XE开发android开发环境搭建
Delphi xe为使用Delphi作为开发工具的程序员,提供了开发APP的便捷工具,它的开发环境也是非常容易搭建,这里我简述一下Android的开发环境搭建,Delphi XE开发Android程序的开发环境需要三个软件支持:Java SE Development开发环境、Android SDK和Android Ndk开发环境。 1、安…...
flink入门-流处理
入门需要掌握:从入门demo理解、flink 系统架构(看几个关键组件)、安装、使用flink的命令跑jar包flink的webUI 界面的监控、常见错误、调优 一、入门demo:统计单词个数 0、单词txt 文本内容(words.txt): hello world …...
【数据结构】单链表中,如何实现 将链表中所有结点的链接方向“原地”逆转
一.实现一个单链表(无头单向不循环) 我们首先实现一个无头单向不循环单链表。 写出基本的增删查改功能,以及其它的一些功能(可忽略)。 #include<stdio.h> #include<assert.h> #include<stdlib.h>…...
摘花生(简单DP)
Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hel…...
2022济南大学acm新生赛题解
通过答题情况的难度系数: 签到:A 简单:BL 中等:D 困难:CM 极难:KNO A-和 算出n个数的和判断正负性即可!!! 发现很多同学的代码错误:要么sum未赋初值&…...
策略模式教程
策略模式是一种行为型设计模式,它允许在运行时根据不同的情况选择不同的算法实现,从而使得算法可以独立于客户端而变化。本文将介绍策略模式的概念、应用场景、优点和缺点,并提供最佳的代码实践。本文的代码实现将使用Java语言,但…...
什么是刺猬理念
一、什么是刺猬理念刺猬理念是指把复杂的世界简化成单个有组织性的观点,一条基本原则或一个基本理念,发挥统帅和指导作用。核心是把事情简单化,把所有的挑战和进退维谷的局面压缩为简单的。二、刺猬理念的寓言故事狐狸是一种狡猾的动物&#…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
游戏开发中常见的战斗数值英文缩写对照表
游戏开发中常见的战斗数值英文缩写对照表 基础属性(Basic Attributes) 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...
