企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Batch Processing(批处理) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_batch_processing.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_batch_processing.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260724](http://www.apache.wiki/pages/viewpage.action?pageId=4260724) 贡献者 : [那伊抹微笑](/display/~wangyangting),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) 除了可以索引,更新,和删除单个的文档之外,**Elasticsearch** 还提供了使用 [`_bulk` API](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docs-bulk.html "Bulk API") 来执行上面任何操作的批量方式的能力。这个功能是非常重要,它提供了一种非常有效的机制,以尽可能减少网络返回且尽可能快的执行多个操作。 作为一个简单的例子,在一个批量操作中下面调用且索引了两个文档(**ID 1** - John Doe 和 **ID 2** - Jane Doe):  ``` curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -d' {"index":{"_id":"1"}} {"name": "John Doe" } {"index":{"_id":"2"}} {"name": "Jane Doe" } ' ``` 这个例子使用一个批量操作更新了第一个文档(**ID** 为 **1**),然后删除了第二个文档(**ID** 为 **2**) :  ``` curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -d' {"update":{"_id":"1"}} {"doc": { "name": "John Doe becomes Jane Doe" } } {"delete":{"_id":"2"}} ' ``` 请注意上面的删除操作,在它后面没有相关的源文档,因为删除操作只需要文档的 **ID** 来删除。 该 **bulk API** 以此按顺序执行所有的 action(动作)。如果一个单个的动作因任何原因而失败,它将继续处理它后面剩余的动作。当 **bulk API** 返回时,它将提供每个动作的状态(与发送的顺序相同),所以您可以检查是否一个指定的动作是不是失败了。