elasticsearch bulk 批量操作

1:bulk 是 elasticsearch 提供的一种批量增删改的操作API

bulk 对 JSON串 有着严格的要求。每个JSON串 不能换行 ,只能放在同一行,同时, 相邻的JSON串之间必须要有换行 (Linux下是\n;Window下是\r\n)。bulk的每个操作必须要 一对JSON串 (delete语法除外)。

bulk 请求体如下:
{ action: { metadata }}\n
{ request body }\n
{ action: { metadata }}\n
{ request body }\n

2:action必须是以下几种:

测试索引示例
PUT batch_test
{
“mappings”: {
“properties”: {
“id”:{
“type”: “keyword”
},
“name”:{
“type”: “text”
},
“age”:{
“type”: “integer”
}
}
}
}

测试原始数据

PUT /_bulk
{“index”:{“_index”:“batch_test”,“_id”:“101”}}
{“doc”:{“name”:“测试create数据101”,“age”:“21”}}
{“index”:{“_index”:“batch_test”,“_id”:“102”}}
{“doc”:{“name”:“测试create数据101”,“age”:“22”}}

标题2.1》 create:如果文档不存在就创建,但如果文档存在就返回错误。

首次创建
elasticsearch bulk 批量操作_第1张图片
再次创建
elasticsearch bulk 批量操作_第2张图片

2.2》index 如果文档不存在就创建,如果文档存在就相当于重新创建文档

elasticsearch bulk 批量操作_第3张图片
再次执行,为重新覆盖整条doc(相当于删除后新增)
elasticsearch bulk 批量操作_第4张图片

2.3》update 更新一个文档,如果文档不存在就返回错误

elasticsearch bulk 批量操作_第5张图片
更新不存在的文档
elasticsearch bulk 批量操作_第6张图片
elasticsearch bulk 批量操作_第7张图片

2.4》批量删除,删除一个文档,如果要删除的文档id不存在,就返回错误

elasticsearch bulk 批量操作_第8张图片
再次删除,文档已经不存在,返回错误
elasticsearch bulk 批量操作_第9张图片

你可能感兴趣的:(ES,elasticsearch)