(1)定义
bulk允许在单个步骤中进行多次create、index、update或delete请求。
bulk与其他的请求体格式稍有不同,如下所示:
{ action: { metadata }}\n
{ request body }\n
{ action: { metadata }}\n
{ request body }\n
...
这种格式类似一个有效的单行JSON文档流,它通过换行符(\n)连接到一起。注意两个要点:
1)每行一定要以换行符(\n)结尾,包括最后一行。
2)这些行不能包含未转义的换行符,因为他们将会对解析造成干扰。
action必须是以下选项之一:
1)create,如果文档不存在,那么就创建它。
2)index,创建一个新文档或者替换一个现有的文档。
3)update,部分更新一个文档。
4)delete,删除一个文档。
metadata应该指定被索引、创建、更新或者删除的文档的_index、_type和_id。
request body行由文档的_source本身组成—文档包含的字段和值。
官网文档地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html
(2)实例
请求url:
http://172.17.36.101:9200/_bulk?pretty
请求方式:
PUT
请求头:
Content-Type: application/json
请求体:
{"create":{"_index":"test","_id":"1"}}
{"name":"tom","age":1}
请求url:
http://172.17.36.101:9200/_bulk?pretty
请求方式:
PUT
请求头:
Content-Type: application/json
请求体:
{"index":{"_index":"test","_id":"2"}}
{"name":"jerry","age":2}
请求url:
http://172.17.36.101:9200/_bulk?pretty
请求方式:
PUT
请求头:
Content-Type: application/json
请求体:
{"update":{"_index":"test","_id":"2"}}
{"doc":{"name":"jerry","age":3}}
请求url:
http://172.17.36.101:9200/_bulk?pretty
请求方式:
PUT
请求头:
Content-Type: application/json
请求体:
{"delete":{"_index":"test","_id":"1"}}
运行结果