批处理
除了能够索引,更新和删除单个文档之外,Elasticsearch还提供了使用_bulkAPI批量执行上述任何操作的功能。这个功能很重要,因为它提供了一个非常有效的机制来尽可能快地进行多个操作,尽可能少的网络往返行程。
批处理插入的两个文档
POST /customer/external/_bulk?pretty
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
批处理更新和删除之前的文档
POST /customer/external/_bulk?pretty
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
注意,对于删除操作,没有相应的源文档,因为删除只需要要删除的文档的ID。
由于其中一个操作失败,Bulk API不会失败。如果一个动作由于任何原因而失败,它将继续处理其后的其余动作。当批量API返回时,它将为每个操作提供一个状态(按照发送的相同顺序),以便您可以检查特定操作是否失败。