ElasticSearch-更新与更新冲突
来源:互联网 发布:淘宝刷到单能赚钱吗 编辑:程序博客网 时间:2024/05/29 09:32
在上一篇博客ElasticSearch-简介,对索引操作中知道,如果插入一条数据,该ID存在的情况下,文档将会覆盖旧的文档,然后重新索引整个文档。那么有没有办法使其部分更新,例如在某个请求时对计数器增加。
update
请求最简单的一种形式是接收文档的一部分作为doc
参数,它只是与现有的文档合并。对象被合并到一起,覆盖现有的字段,增加的新的字段。例如在张三
的信息中增加score
和favorite
字段
curl -XPOST 'http://localhost:9200/grade3/class2/1/_update' -d '{ "doc":{ "score":80, "favorite":["music","football"] }}'
此时,就完成了对张三的信息的更改,我们查询一下张三
的信息,获得:
{ "_index" : "grade3", "_type" : "class2", "_id" : "1", "_version" : 2, "found" : true, "_source" : { "name":"张三", "age":18, "email":"xxx@163.com", "score":80, "favorite":["music","football"] }}
除了上面这种方法之外,ElasticSearch还提供了脚本来实现部分更新:
# 通过将本将张三的信息中score加1curl -XPOST 'http://localhost:9200/grade3/class2/1/_update' -d '{ "script":"ctx._source.score+=1"}'
更新冲突
在上一篇博客ElasticSearch-冲突处理,介绍了在覆盖更新时冲突的出现和解决,但它使用于覆盖更新情况,此时我们需要对文档部分更新,该如何解决这种冲突呢?
在update
API中,可以通过设置参数retry_on_conflict
来自动完成,这个参数决定了update
失败之后重试的次数,它的默认值为0。
curl -XPOST 'http://localhost:9200/grade3/class2/1/_update?retry_on_conflict=5' -d '{ "script":"ctx._source.score+=1"}'
- retry_on_conflict:更新失败之后重试次数
阅读全文
0 0
- ElasticSearch-更新与更新冲突
- ElasticSearch处理更新冲突
- svn提交、更新与文件冲突
- elasticsearch更新文档数据
- elasticsearch更新数据
- Elasticsearch 文档更新操作
- Elasticsearch更新操作
- elasticsearch之更新文档
- Elasticsearch如何更新mapping
- Elasticsearch更新同义词表
- Elasticsearch(文档局部更新)
- git 更新遇到冲突
- SVN更新冲突解释
- svn更新冲突
- svn更新冲突解决
- mysql 主键冲突更新
- ElasticSearch的Marvel更新license
- elasticsearch java update 更新成功
- Bugly Android 热更新常见问题
- sshd服务
- Spring Ioc
- Effective Java阅读笔记(二)——第三章 对所有对象都通用的方法
- phpcms 微信支付流程
- ElasticSearch-更新与更新冲突
- Linux查找含有某字符串的所有文件
- SQLyog备份数据库、导入sql脚本、解决Error Code: 2006
- C语言中static的作用
- ElasticSearch-多索引检索与批量操作
- Android控件布局属性全解
- distribute candies
- c#TextBox输入框自动提示、自动完成、自动补全功能
- 思维导图get面试新技能