博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch5.3 3
阅读量:6414 次
发布时间:2019-06-23

本文共 2135 字,大约阅读时间需要 7 分钟。

hot3.png

  • 记录修改
curl -XPUT "localhost:9200/customer/external/1?pretty&pretty" -H "Content-Type: application/json" -d "{  \"name\": \"John Doe\" }"

ID还是1,换个名字

curl -XPUT "localhost:9200/customer/external/1?pretty&pretty" -H "Content-Type: application/json" -d "{  \"name\": \"Jone Doe\" }"

换个ID,名字一样

curl -XPUT "localhost:9200/customer/external/2?pretty&pretty" -H "Content-Type: application/json" -d "{  \"name\": \"John Doe\" }"

不指定ID,ES会随机生成一个。 值得注意的是,这里使用POST,而不是PUT。

curl -XPOST "localhost:9200/customer/external?pretty" -H "Content-Type: application/json" -d "{  \"name\": \"John Doe\" }"
  • 更新记录

ES不支持原地更新,所谓的更新只是删除之后再重新index。

curl -XPOST "localhost:9200/customer/external/1?pretty" -H "Content-Type: application/json" -d "{  \"name\": \"Corleone\" }"

修改名字的同时,再加个age属性。

curl -XPOST "localhost:9200/customer/external/1?pretty" -H "Content-Type: application/json" -d "{  \"name\": \"nancy\", \"age\":18 }"

age属性如果存在的情况下,也可以使用script方式更新,如 age = age + 5

curl -XPOST "localhost:9200/customer/external/2/_update?pretty&pretty" -H "Content-Type: application/json" -d "{ \"script\" : \"ctx._source.age += 5\" } "

目前上述方式只支持对一个记录更新。ES后续可能会提供类似SQL 的 update where 更新操作。

Note that as of this writing, updates can only be performed on a single document at a time. In the future, Elasticsearch might provide the ability to update multiple documents given a query condition (like an SQL UPDATE-WHERE statement).

  • 删除记录

按照id删除记录

curl -XDELETE "localhost:9200/customer/external/2?pretty&pretty"
  • 批处理

index id=1 设置name = "John Doe" 并且 index id=2 设置name = "Jane Doe"

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'{"index":{"_id":"1"}}{"name": "John Doe" }{"index":{"_id":"2"}}{"name": "Jane Doe" }'

id=1,更新 name = "John Doe becomes Jane Doe" 并且 删除 id=2的记录

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'{"update":{"_id":"1"}}{"doc": { "name": "John Doe becomes Jane Doe" } }{"delete":{"_id":"2"}}'

值得注意的是,删除操作只需要ID,并且删除后无需追加信息。

bulk api 不是事务的,任何一个操作不管什么原因失败了,剩下的操作依然会继续执行。并且在最后返回状态。此状态会展示失败的数量和具体信息。

转载于:https://my.oschina.net/corleone/blog/874124

你可能感兴趣的文章
在Winform程序中设置管理员权限及为用户组添加写入权限
查看>>
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
《JavaScript设计模式》——2.5 多种调用方式——多态
查看>>
Redis开发运维实践高可用和集群架构与实践(二)
查看>>
程序员的常见“谎话”:对,这是一个已知 Bug
查看>>
如何侦查SQL执行状态
查看>>
CentOS 7 命令行如何连接无线网络
查看>>
Ubuntu 12.04上享用新版本Linux的功能
查看>>
logstash + grok 正则语法
查看>>
Zimbra开源版(v8.6)安装说明
查看>>
Android性能优化之TraceView和Lint使用详解
查看>>
linux centos7.2 安装mysq,nginx,php
查看>>
myrocks之事务处理
查看>>
基于pgrouting的路径规划之一
查看>>
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>
CSS3 3D翻转动画
查看>>
送给即将踏入软考征途的你
查看>>