多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Updating Documents(更新文档) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_updating_documents.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_updating_documents.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260713](http://www.apache.wiki/pages/viewpage.action?pageId=4260713) 贡献者 : [那伊抹微笑](/display/~wangyangting),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) 除了可以索引和替换文档之外,我们也可以更新文档。不过,请注意尽管 **Elasticsearch** 没有在后台马上更新。每当我们做一次更新,**Elasticsearch** 删除旧的文档,然后一次性应用更新索引一个新文档。 这个例子演示了如何去更新我们先前的文档(**ID** 为 **1**),通过修改 **name** 字段的值为 “Jane Doe” :  ``` curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -d' { "doc": { "name": "Jane Doe" } }' ``` 这个例子演示了如何去更新我们先前的文档(**ID** 为 **1**),通过修改 **name** 字段的值为 “Jane Doe”,并且同时添加 **age** 字段 :  ``` curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -d' { "doc": { "name": "Jane Doe", "age": 20 } }' ``` 更新也是通过使用简单的简本来执行。这个例子演示了使用简本来将 **age** 加 **5** :  ``` curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -d' { "script" : "ctx._source.age += 5" }' ``` 在上面的例子中,**ctx._source** 代表当前将被更新的源文档。 请注意,在编写该文档时,在同一时间中更新只能够被执行一个文档上。在将来,**Elasticsearch** 也许会提供给定一个查询条件(像 **SQL UPDATE-WHERE** 语句)来更新多个文档的功能。