1 介绍
主要介绍批量操作bulk,使用postman进行请求,接口请求的前缀地址统一为elasticsearch 部署IP地址+端口号(例如 http://192.168.51.4:9200 。
2 批量操作bulk
2.1 基础语法
bulk操作和以往的普通请求格式有区别。指令一般都在一行,用换行符隔开,不是标准的JSON格式,这点需要注意。
{action: {metadata}} \n
{request body} \n
{action: {metadata}} \n
{request body} \n
...
-
{action: {metadata}}
代表批量操作的类型,可以是新增、删除和修改 -
\n
是每行结尾必须填写的一个规范,每一行包括最后一行都需要写,用于es的解析 -
{request body}
是请求body,增加和修改操作需要,删除操作则不需要
2.2 批量操作类型
action
必须是以下选项之一:
- create:如果文档不存在,那么就创建它,存在的话,就会报错,发生异常报错不会影响其他操作
- index:创建一个新文档或者替换一个现有的文档
- update:部分更新一个文档
- delete:删除一个文档
metadata
中需要指定要操作的文档的 _index
、_type
和 _id
,同时_index
、_type
也可在url中指定
2.3 操作演练
官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html
-
create 新增文档数据,在metadata中指定index以及type
POST /_bulk
{"create":{"_index": "test","_type": "_doc","_id": "2001"}} {"id": "2001","nickname":"test-2001"} {"create":{"_index": "test","_type": "_doc","_id": "2002"}} {"id": "2002","nickname":"test-2002"} {"create":{"_index": "test","_type": "_doc","_id": "2003"}} {"id": "2003","nickname":"test-2003"}
-
create 创建已有id文档,在url中指定index和type
POST /test/_doc/_bulk
{"create":{"_id": "2004"}} {"id": "2004","nickname":"test-2004"} {"create":{"_id": "2005"}} {"id": "2005","nickname":"test-2005"} {"create":{"_id": "2006"}} {"id": "2006","nickname":"test-2006"}
-
index 创建,已有文档ID会被覆盖,不存在ID则新增
POST /test/_doc/_bulk
{"index":{"_id": "2005"}} {"id": "2005","nickname":"test-index"} {"index":{"_id": "2006"}} {"id": "2006","nickname":"test-2006"} {"index":{"_id": "2007"}} {"id": "2007","nickname":"test-2007"}
-
update 更新部分文档信息
POST /test/_doc/_bulk
{"update":{"_id": "2004"}} {"doc": {"id": "2004"}} {"update":{"_id": "2005"}} {"doc": {"nickname":"test-update"}}
-
delete 批量删除
POST /test/_doc/_bulk
{"delete":{"_id": "2004"}} {"delete":{"_id": "2005"}}
-
综合批量操作
POST /test/_doc/_bulk
{"create":{"_index": "test","_type": "_doc","_id": "2009"}} {"id": "2009","nickname":"test-2009"} {"update":{"_id": "2005"}} {"doc": {"nickname":"test-update"}} {"id": "2001","nickname":"test-2001"} {"delete":{"_id": "2004"}}
3 相关信息
- 博文不易,辛苦各位猿友点个关注和赞,感谢
网友评论