1、什么是partial update?
一般对应到应用程序中,每次的执行流程基本是这样的:
(1)应用程序先发起一个get请求,获取到document,展示到前台页面,供用户查看和修改
(2)用户在前台界面修改数据,发送到后台
(3)后台代码会将用户修改的数据在内存中进行执行,然后封装好修改后的全量数据
(4)然后发送PUT请求,到ES中,进行全量替换
(5)ES将老的document标记为deleted,然后重新create一个新的document
partial update是说没必要全量替换,我更新哪个字段就发送哪个字段就好了,无需全量发送。
2、partial update基本语法
POST /index/type/id/_update
{
"doc" : {
"要修改的少数几个field即可,不需要全量的数据"
}
}
3、图解 partial update实现原理以及优点
Paste_Image.png4、实战演练partial update
数据准备
PUT /test_index/test_type/10
{
"test_field1" : "test1",
"test_field2" : "test2"
}
partial update,只修改test_field2字段
POST /test_index/test_type/10/_update
{
"doc" : {
"test_field2" : "updated test2"
}
}
查看是否更新成功
GET /test_index/test_type/10/
结果
{
"_index": "test_index",
"_type": "test_type",
"_id": "10",
"_version": 4,
"found": true,
"_source": {
"test_field1": "test1",
"test_field2": "updated test2"
}
}
若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:
qrcode_for_gh_577b64e73701_258.jpg
网友评论