前面已经介绍了如何使用ES提供的REST API去做CRUD操作,但是这些操作都是单一的.今天来介绍一下ES中的批处理,可以批量CUD索引和文档1
curl -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary "@accounts.json"
@accounts.json
是存在当前目录下的一个json文件,里面存储了一个josn数组,你可以让她存储任何结构相同的数组.
所有的批量操作都是使用_bluk API来完成,上面的操作就是为accounts.json
里面的数据建立索引.
- 除了批量操作数据之外,ES还可以对一条或多条数据进行多步骤操作.
1
2
3
4
5
6
7curl -XPOST 'localhost:9200/blog/article/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"title": "batch bulk api title 1" }
{"update":{"_id":"2"}}
{"doc": {"title": "batch bulk api title 2" }}
{"delete":{"_id":"3"}}
'
上面的批量操作一共干了三件事情:
- 将id是1的Document重新以新的数据重新索引,因此该Document的version会自增1
- 更新了id是2的Document中的
title
数据,只是更新数据,并不涉及到重新索引所以version不会变化 - 删除了id为3的文档
更多的批处理操作可以参考Bulk API