当前位置: 首页 > news >正文

Elasticsearch之更新(全部更新和局部更新)

 

  前面的基础,

Elasticsearch之curl创建索引库

Elasticsearch之curl创建索引

Elasticsearch之curl创建索引库和索引时注意事项

Elasticsearch之cur查询索引

 

 

 

 

 

  首先,明确一个概念,es包括全部更新和局部更新

 

 

ES全部更新

  ES可以使用PUT或者POST对文档进行更新(全部更新),如果指定ID的文档已经存在,则执行更新操作。

比如,我这里,id=1文档存在,那么,就是es全部更新。

注意:

  es执行更新操作的时候,ES首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是你也无法访问,

ES会在你继续添加更多数据的时候在后台清理已经标记为删除状态的文档。

 

 

 

 

 

 

 

 

 

ES局部更新

  es为什么需要局部更新?

这个,从字面意思就知道,当然,不想全部更新时,比如一个指定类型下,很多个id,我不想每个id都涉及等。

 

 

  局部更新,可以添加新字段或者更新已有字段(必须使用POST

[hadoop@djt002 elasticsearch-2.4.3]$ curl -XGET 'http://192.168.80.200:9200/zhouls/emp/1?_source=name&pretty'
{
"_index" : "zhouls",
"_type" : "emp",
"_id" : "1",
"_version" : 3,
"found" : true,
"_source" : {
"name" : "tom"
}
}
[hadoop@djt002 elasticsearch-2.4.3]$ curl -XGET 'http://192.168.80.200:9200/zhouls/emp/1?_source=name,age&pretty'
{
"_index" : "zhouls",
"_type" : "emp",
"_id" : "1",
"_version" : 3,
"found" : true,
"_source" : {
"age" : 25,
"name" : "tom"
}
}
[hadoop@djt002 elasticsearch-2.4.3]$

 

 

 

 

 

[hadoop@djt002 elasticsearch-2.4.3]$ curl -XPOST 'http://192.168.80.200:9200/zhouls/emp/1/_update' -d '{"doc":{"name":"mack"}}'
{"_index":"zhouls","_type":"emp","_id":"1","_version":4,"_shards":{"total":2,"successful":1,"failed":0}}[hadoop@djt002 elasticsearch-2.4.3]$
[hadoop@djt002 elasticsearch-2.4.3]$
[hadoop@djt002 elasticsearch-2.4.3]$
[hadoop@djt002 elasticsearch-2.4.3]$ curl -XGET 'http://192.168.80.200:9200/zhouls/emp/1?_source=name&pretty'
{
"_index" : "zhouls",
"_type" : "emp",
"_id" : "1",
"_version" : 4,
"found" : true,
"_source" : {
"name" : "mack"                成功更改了name
}
}
[hadoop@djt002 elasticsearch-2.4.3]$ curl -XGET 'http://192.168.80.200:9200/zhouls/emp/1?pretty'
{
"_index" : "zhouls",
"_type" : "emp",
"_id" : "1",
"_version" : 4,
"found" : true,
"_source" : {
"name" : "mack",
"age" : 25
}
}
[hadoop@djt002 elasticsearch-2.4.3]$

 

 

 

 

 

 

总结:

ES全部更新,使用PUT或者POST

ES局部更新,使用POST

 

 

ES的全部更新和局部更新,底层有什么区别?

答:全部更新,是直接把之前的老数据,标记为删除状态,然后,再添加一条更新的。

      局域更新,只是修改某个字段。

相关文章:

  • mysql查看表结构
  • 使用Hilo.JS快速开发Flappy Bird
  • STAR法则
  • Openlayer4 - 最好最强大的开源地图引擎
  • shell中${}的妙用
  • 重定向监听端口并持久化路由配置
  • apiCloud结合layer实现动态数据弹出层
  • Win7 VS2015编译wxWidgets-3.1.0
  • html5 class
  • 2008 R2 Remote Desktop Server driver RDPDR.sys cannot be started, error 577
  • html5/css3
  • 三层与mvc
  • ERPS实例演示
  • SuSE Linux 开启VNC服务
  • HDU1572:下沙小面的(2)(DFS)
  • [PHP内核探索]PHP中的哈希表
  • [LeetCode] Wiggle Sort
  • CAP理论的例子讲解
  • Centos6.8 使用rpm安装mysql5.7
  • Fabric架构演变之路
  • GraphQL学习过程应该是这样的
  • gulp 教程
  • HTML中设置input等文本框为不可操作
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript-Array类型
  • javascript数组去重/查找/插入/删除
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vue学习系列(二)vue-cli
  • Wamp集成环境 添加PHP的新版本
  • yii2中session跨域名的问题
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 数据可视化之 Sankey 桑基图的实现
  • 系统认识JavaScript正则表达式
  • 小试R空间处理新库sf
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 智能合约Solidity教程-事件和日志(一)
  • 阿里云ACE认证学习知识点梳理
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​水经微图Web1.5.0版即将上线
  • # 数据结构
  • (AngularJS)Angular 控制器之间通信初探
  • (独孤九剑)--文件系统
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .NET delegate 委托 、 Event 事件
  • .NET MVC之AOP
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET面试题(二)
  • [20171106]配置客户端连接注意.txt
  • [20190401]关于semtimedop函数调用.txt