PUT 和 POST-更新Ⅰ之全局更新|学习笔记

简介: 快速学习 PUT 和 POST-更新Ⅰ之全局更新。

开发者学堂课程【ElasticSearch 最新快速入门教程PUT 和 POST-更新Ⅰ之全局更新】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10607


PUT 和 POST-更新Ⅰ之全局更新

 

内容介绍:

一、讲义

二、演示

三、说明

 

一、讲义

PUT 是幂等方法,POST 不是。所以 PUT 用于更新,POST 用于新增比较合适。

所谓幂等是指不管进行多少次操作,结果都一样。

需要注意的一点就是,创建操作可以使用 POST,也可以使用 PUT,区别就在于 POST 是作用在一个集合资源(/articles)之上的,而 PUT 操作是作用在一个具体资源之上的(/articles/123),比如说很多资源使用数据库自增主键作为标识信息,这个时候就需要使用 PUT 了。而创建的资源的标识信息到底是什么,只能由服务端提供时,这个时候就必须使用 POST。

 

二、演示

全局更新:(一般不使用,效果是:将旧的索引信息替换为新的索引信息)

使用 post 和 put 都行

1、使用 post,将索引标识为1索引信息更新为:"name":"HADOOP","author":"郭富城”

curl-H'Content-Type:application/json'-XPOST'http://JANSON01:9200/bigdata/product/1?pretty’ -d" {"name":"HADOOP","author":"郭富城”}’

演示:

打开索引库

先输入 su -l jerry启动

再输入 jps 查看一下

再输入

curl-XGET'Http://JANSON01:9200/bigdata/product/_search?pretty’

如图罗列出信息

image.png

将 ID 为1的 author 更新为郭富城:

先指定一个类型-H 'application/json'放在 curl 后面为:

curl-H'application/json'-XPOST'http://JANSON01:9200/bigdata/product/1?pretty’ -d" ‘{"name":"hadoop","author":"郭富城”}’

这时发现报错,需要增加一个 content type 的参数类型

curl-H'Content-Type:application/json'-XPOST'http://JANSON01:9200/bigdata/product/1?pretty’ -d" ‘{"name":"hadoop","author":"郭富城”}’确定更新后查看结果。

2.使用 put,将索引标识为1索引信息更新为:"name":"hadoop","author":"道哥.卡廷"}’

只用将上面的信息其中的-XPOST 改为-XPUT,  "author":"郭富城”改为"author":"道哥.卡廷"

即:

curl-H'Content-Type:application/json'-XPUT'http://JANSON01:9200/bigdata/product/1?pretty’ -d" {"author":"道哥.卡廷”}’

 

三、说明

1、但是这些操作都是全局更新,可以理解为先将旧的 document 删除,然后重新创建一个新的、id 相同的document

2、PUT 是幂等方法,POST 不是,所以 PUT 用于更新,POST 用于新增比较合适。(幂等操作:无论进行多少次操作,最终的结果是一致的。如 StringBuffer)

3、ES 创建索引库和索引时的注意点:

1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号

2)如果没有明确指定索引数据的 ID,那么 es 会自动生成一个随机的 ID,需要使用 POST 参数

curl -H‘Content-Type:application/json’-XPOST

http://JANSON01:9200/bigdata/product/-d '{“name”: “HADOOP”,"author": "Doug Cutting", “version”:3.3.3}’

相关文章
|
机器学习/深度学习 人工智能 物联网
深度学习在时间序列预测的总结和未来方向分析
2023年是大语言模型和稳定扩散的一年,时间序列领域虽然没有那么大的成就,但是却有缓慢而稳定的进展。Neurips、ICML和AAAI等会议都有transformer 结构(BasisFormer、Crossformer、Inverted transformer和Patch transformer)的改进,还出现了将数值时间序列数据与文本和图像合成的新体系结构(CrossVIVIT), 也出现了直接应用于时间序列的可能性的LLM,以及新形式的时间序列正则化/规范化技术(san)。
811 1
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
15394 6
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
67837 5
详解HTTP四种请求:POST、GET、DELETE、PUT
|
搜索推荐 算法
数据结构与算法学习十四:常用排序算法总结和对比
关于常用排序算法的总结和对比,包括稳定性、内排序、外排序、时间复杂度和空间复杂度等术语的解释。
129 0
数据结构与算法学习十四:常用排序算法总结和对比
|
存储 数据采集 监控
CDGA\如何建立实现数据治理的效率价值框架:实践案例解析
数据治理是一个持续优化的过程。组织应建立健全的监督与评估机制,定期对数据治理工作进行评估,发现问题及时整改。广东药科大学通过数据全景图和数据监控大屏,实现了对数据治理成果的动态、多维度呈现与监控,为科学管理决策提供了有力支撑。
|
Ubuntu 网络安全 C语言
【VirtualBox安装Ubuntu过程记录】
【VirtualBox安装Ubuntu过程记录】
459 2
|
算法 安全 区块链
【区块链】解码拜占庭将军问题:区块链共识机制的哲学基石
拜占庭将军问题,一个由Leslie Lamport于1982年提出的经典分布式系统理论问题,是现代加密货币与区块链技术背后的哲学基础。这一理论模型不仅深刻地影响了计算机科学领域,还成为了构建去中心化信任体系的关键灵感来源。本文将深入剖析拜占庭将军问题的本质、解决方案及其对区块链共识机制的深远影响,为读者揭示这一抽象理论的现实应用价值。
577 0
|
机器学习/深度学习 算法 PyTorch
Pytorch实现线性回归模型
在机器学习和深度学习领域,线性回归是一种基本且广泛应用的算法,它简单易懂但功能强大,常作为更复杂模型的基础。使用PyTorch实现线性回归,不仅帮助初学者理解模型概念,还为探索高级模型奠定了基础。代码示例中,`creat_data()` 函数生成线性回归数据,包括噪声,`linear_regression()` 定义了线性模型,`square_loss()` 计算损失,而 `sgd()` 实现了梯度下降优化。
215 11
|
安全 算法 关系型数据库
线程安全--深入探究线程等待机制和死锁问题
线程安全--深入探究线程等待机制和死锁问题
421 1
|
缓存 前端开发 搜索推荐
提升网站性能的10个实用技巧
在当今数字化时代,网站性能的优化至关重要,它直接影响着用户体验和搜索引擎排名。本文将介绍10个实用的技巧,帮助您提升网站的性能,包括前端、后端和服务器端的优化策略,以及一些常见的性能问题解决方法。