elasticsearch使用bulk实现批量操作
本篇文章提供ES原生批量操作语法及使用bulk批量操作文档。文章依旧提供语法,具体实现大家根据语法,在对应处进行替换即可
一、原生批量获取文档
1、获取指定文档值(1)
语法: GET /_mget { “doce”:[ { “_index”:”索引名1”, “_type”:”类型1”, “_id”:”id” }, { “_index”:”索引名1”, “_type”:”类型1”, “_id”:”id”
} ] } |
2、获取指定字段的值(2)
GET /_mget { “doce”:[ { “_index”:”索引名1”, “_type”:”类型1”, “_id”:”id”, “_source”:”字段名” }, { “_index”:”索引名1”, “_type”:”类型1”, “_id”:”id”, “_source”:[“字段名1”,”字段名2”] } ] } |
3、当索引和类型一致时获取多个文档
GET /索引名/类型 _mget { “ids”:[“id1”,”id2”,”id3”] } |
二、使用bulk API实现批量操作
Bulk的格式:
{action:{metadata}}\n
{requestbody}\n
action:(行为)
create :文档不存在时创建(存在时创建会报错)
update:更新文档
index:创建新文档或替换已有的文档
delete:删除一个文档
metadata:_index,_type,_id
示例:
{ “delete”:{ “_index”:”索引名”, “_type”:”类型”, “_id”:”id号” } } |
同时添加多个文档
POST /索引名/类型/_bulk {“index”:{“_id”:1}}换行 {“字段名1”:”值1”,”字段名2”:”值2”} {“index”:{“_id”:2}}换行 {“字段名1”:”值1”,”字段名2”:”值2”} {“index”:{“_id”:3}}换行 {“字段名1”:”值1”,”字段名2”:”值2”} |
以上代码是本人根据实际使用进行的提炼,若大家有所疑问或不同见解欢迎评论。本人博客主页:https://home.cnblogs.com/u/chenyuanbo/
技术在于沟通交流!