elasticsearch的常规操作--增删改查和批量处理

1、_cat 查询

GET /_cat/nodes:  查看所有节点
GET /_cat/health: 查看es 健康状况
GET /_cat/master: 查看主节点
GET /_cat/indices:查看所有索引show databases;

2、索引一个文档(保存)
保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识

PUT customer/external/1;在customer 索引下的external 类型下保存1 号数据为
PUT customer/external/1
{
"name": "John Doe"
}


PUT 和POST 都可以,
POST 新增。如果不指定id,会自动生成id指定id 就会修改这个数据,并新增版本号
PUT 可以新增也可以修改。PUT 必须指定id;由于PUT 需要指定id,我们一般都用来做修改
操作,不指定id 会报错。

3、查询文档

GET customer/external/1


结果:

{
"_index": "customer", //在哪个索引
"_type": "external", //在哪个类型
"_id": "1",          //记录id
"_version": 2,      //版本号
"_seq_no": 1,       //并发控制字段,每次更新就会+1,用来做乐观锁
"_primary_term": 1, //同上,主分片重新分配,如重启,就会变化
"found": true,
"_source": {        //真正的内容
"name": "John Doe"
}
}


更新携带以下参数:

?if_seq_no=0&if_primary_term=1

4、更新文档

POST customer/external/1/_update
{
"doc":{
"name": "John Doew"
}
}


或者

POST customer/external/1{
"name": "John Doe2"
}


或者
 

PUT customer/external/1{
"name": "John Doe"
}
  • 不同:POST 操作会对比源文档数据,如果相同不会有什么操作,文档version 不增加

PUT 操作总会将数据重新保存并增加version 版本;
带_update 对比元数据如果一样就不进行任何操作。
看场景;
对于大并发更新,不带update;
对于大并发查询偶尔更新,带update;对比更新,重新计算分配规则。

  •  更新同时增加属性
POST customer/external/1/_update

{
"doc": { "name": "Jane Doe", "age": 20 }
}


PUT 和POST 不带_update 也可以

5、删除文档&索引

DELETE customer/external/1
DELETE customer


6、bulk 批量API

POST customer/external/_bulk

{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }


语法格式:

{ action: { metadata }}\n
{ request body }\n
{ action: { metadata }}\n
{ request body }\n


复杂实例:

POST /_bulk

{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title": "My first blog post" }
{ "index": { "_index": "website", "_type": "blog" }}
{ "title": "My second blog post" }
{ "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
{ "doc" : {"title" : "My updated blog post"} }


bulk API 以此按顺序执行所有的action(动作)。如果一个单个的动作因任何原因而失败,
它将继续处理它后面剩余的动作。
当bulk API 返回时,它将提供每个动作的状态(与发送
的顺序相同),所以您可以检查是否一个指定的动作是不是失败了。

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

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

相关文章

某红书旋转滑块验证码分析与协议算法实现(高通过率)

文章目录 1. 写在前面2. 接口分析3. 验证轨迹4. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致…

力扣SQL50 学生们参加各科测试的次数 查询 三表查询

Problem: 1280. 学生们参加各科测试的次数 👨‍🏫 参考题解 join等价于inner join,不用关联条件的join等价于cross join Code select stu.student_id,stu.student_name, sub.subject_name,count(e.subject_name) attended_exams from Stud…

关于windosw打开安全中心空白的解决方案

关于windosw打开安全中心空白的解决方案 问题如下 问题如下 之后点击一片空白 解决方案如下 按下WINR,输入regedit回车找到路径:“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService”,然后双击右边的“start”…

【最新鸿蒙应用开发】——关系型数据库简单上手(RDB)

关系型数据库(RDB) 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改…

【cocos sreator】判定多边形和多边形相交

核心代码: cc.Intersection.polygonPolygon(points2, points) 拖拽物品拖到多个目标位置判定,取最近的: getTargetItem(collider2: cc.PolygonCollider, touchPos: cc.Vec2, targetRoot: cc.Node) {let length 99999;let target null;//col…

windows 下编译 TessRact+leptonica 识别图片文字

目录 1、下载 2. 编译基础依赖库 1.1 zlib 1.2 jpegsr9f 1.3 lpng1643 1.4 libgif 3. 编译tifflib 4. 配置nasm到系统环境中 5. 编译 libjpeg-turbo 6 编译leptonica 7. 编译tesseract 8. 测试验证 1、下载 下载tesseract5.3.2 下载leptonica1.83.1 下载l…

1638. 统计只差一个字符的子串数目

题目 给你两个字符串 s 和 t,请找出 s 中的非空子串的数目,这些子串满足替换一个不同字符以后,是 t 串的子串。换言之,请你找到 s 和 t 串中恰好只有一个字符不同的子字符串对的数目。 一个子字符串是一个字符串中连续的字符。 …

【全开源】旅游门票预订系统(FastAdmin+ThinkPHP+Uniapp)

一款基于FastAdminThinkPHPUniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。 ​便捷你的每一次出行🌍 🌟 轻松预订…

PMP中的各种图

单、双代号网络图 区别 内容 箭线图(ADM)-双 箭线活动 节点依赖关系 箭线图只能表示一种FS的关系 规划和控制项目活动进度的项目 (建筑、软件) 前导图(PDM)-单 节点代表活动 前导图法可以体现多种逻…

语义化版本控制:软件工程的实用之道

语义化版本控制:软件工程的实用之道 在软件开发过程中,版本控制是确保项目稳定、有序进行的关键环节。随着项目的发展,功能的增加、错误的修复以及API的修改变得日益频繁。为了有效管理这些变化,并确保团队成员、用户以及依赖该软…

Python中的上下文管理:深入探索contextlib模块

Python中的上下文管理:深入探索contextlib模块 在Python编程中,上下文管理器扮演着至关重要的角色,它们允许我们以一种非常优雅和高效的方式来管理资源,如文件操作、锁的获取与释放等。contextlib模块是Python标准库中的一个模块…

骨传导蓝牙耳机买哪款好?年度精选五款骨传导蓝牙耳机推荐

作为音乐爱好者的我,也一直在寻找一款好的骨传导耳机,听音乐对我来说不仅仅是一种消遣方式,更多是一种对生活、工作上压力和困难的舒缓,所以今天给大家推荐几款骨传导耳机。今天推荐这几款骨传导耳机都是比较有性价比,…

计算机网络学习实践:模拟RIP动态路由

计算机网络学习实践:模拟RIP动态路由 模拟动态路由RIP协议 1.实验准备 实验环境:华为模拟器ENSP 实验设备: 3个路由器,3个二层交换机(不是三层的),3个PC机 5个网段 192.168.1.0 255.255.…

【Linux】文件IO基础

man手册 通过man手册可以获取详细的Linux操作命令共有8章,查询使用man ls即可查询ls的相应命令,也可以使用相应的章节man 2 open查询第二章的open如何使用。 常用文件IO函数 功能函数描述实例打开文件int open(const char *pathname, int flags);打开…

21data 数据可视化 代码合集

<!-- <!DOCTYPE html> <html> <head><title>视觉映射和图例</title><meta charset"utf-8"><script src"echarts.js"></script> </head> <body> <div style"width: 600px;height:4…

电脑视频录制工具,推荐3款,让你的作品更专业!

随着信息技术的飞速发展&#xff0c;电脑视频录制工具在日常工作和娱乐中扮演着越来越重要的角色。它们不仅能帮助我们记录电脑屏幕上的精彩瞬间&#xff0c;还能为教学、演示、游戏直播等多种场景提供便利。本文将详细介绍三款电脑视频录制工具&#xff0c;并分步骤阐述它们的…

【TB作品】msp430f5529单片机,dht22,烟雾传感器

功能 //硬件&#xff1a;msp430f5529、dht22、LCD1602、蜂鸣器、烟雾传感器、蓝牙模块。 //功能&#xff1a;读取温湿度、烟雾浓度显示到屏幕&#xff1b; //按键调节三个报警数值&#xff1b; //温度、湿度、烟雾浓度&#xff0c;任意一个大于报警数值就蜂鸣器报警&#xff1…

如何编辑pdf文件内容?编辑技巧大揭秘,秒变办公达人!

如何编辑pdf文件内容&#xff1f;在数字化办公日益普及的今天&#xff0c;PDF文件因其跨平台、格式稳定的特点&#xff0c;成为我们日常工作和学习中不可或缺的一部分。然而&#xff0c;PDF文件的编辑却常常令人头疼&#xff0c;许多人面对需要修改内容的PDF文件时感到无从下手…

【RPG Maker MV 仿新仙剑 战斗场景UI (九)】

RPG Maker MV 仿新仙剑 战斗场景UI 九 前言角色战斗精灵精灵图设置攻击 战斗背景图 前言 前段天研究并完成了主角人物行走图部分的开发&#xff0c;完成了对应的8方向行走&#xff0c;及精灵的展示。现在开始重新回到战斗场景的开发中&#xff0c;回顾下&#xff0c;已完成功能…

如何手动批准内核扩展 Tuxera NTFS for mac内核扩展需要批准 内核扩展怎么打开

在了解如何手动批准内核扩展之前&#xff0c;我们应该先了解什么叫做内核扩展。内核扩展又被称为KEXT&#xff0c;通过它可以实现macOS系统与软件组件之间的交互&#xff0c;例如磁盘管理、任务管理和内存管理等等。 kext 是内核扩展&#xff08;Kernel Extension&#xff09;…