批处理

除了索引、更新、和删除文档之外, 使用 _bulk API,Elasticsearch 也提供了成批地执行上述操作的能力。这个功能非常重要, 它提供了一个高效的机制,来尽可能快地执行多个操作。

下面在一个操作中的调用索引了两个文档:

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

下面这个示例更新了第一个文档(ID为1),然后删除了第二个文档:

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

注意上面的删除动作,在删除之后不会存在相应的源文档,并且删除只需要被删除文档的ID。

bulk API按照顺序执行所有的动作。如果某一个动作失败了,它将会执行在它后面的剩余的动作。当 bulk API返回的时候,它将给每个动作提供一个状态,所以你可以检查一个指定的动作是成功还是失败。

results matching ""

    No results matching ""