ElasticSearch教程--第十一章:修改您的数据--更新文档

来源:互联网 发布:阿里云幕布 高清下载 编辑:程序博客网 时间:2024/06/05 08:20

转载自:http://blog.sina.com.cn/s/blog_63c8a9170102wlk3.html

本篇教程翻译自ElasticSearch官方教程,原文地址:ElasticSearch
其他章节见:ElasticSearch教程

第十一章:修改您的数据--更新文档

除了能够索引和替换文档,我们也可以更新文档。注意,虽然Elasticsearch现在不做就地更新。但是只要我们一做更新,Elasticsearch会删除旧的文档,然后索引一个新的文档并且在上面实时更新。

下面的例子展示了如何更新我们之前的文档(ID为1),将之前的姓名字段改为“Jane Doe”:
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "doc": { "name": "Jane Doe" }
}'

下面的例子展示了如何更新我们之前的文档(ID为1),将之前的姓名字段改为“Jane Doe”,同时给它增加一个年龄字段:
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "doc": { "name": "Jane Doe", "age": 20 }
}'

可以通过简单的脚本执行更新。注意,如下的动态脚本是默认禁用的直到1.4.3,如果您想了解更多细节,请看scripting docs。下面的例子使用一个脚本来给年龄增加5:
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "script" : "ctx._source.age += 5"
}'

在上面的例子,ctx._source代表要更新的那个源文档。

注意,直到写这篇教程为止,一次只能对一个文档进行更新。在未来,Elasticsearch可能会提供一个查询条件(就像SQL的UPDATE-WHERE语句)来更新多个文档。

 

0 0
原创粉丝点击