elasticsearch使用bulk实现批量操作

Posted chenyuanbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}}

{requestbody}

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/

技术在于沟通交流!

 

以上是关于elasticsearch使用bulk实现批量操作的主要内容,如果未能解决你的问题,请参考以下文章

java操作elasticsearch实现批量添加数据(bulk)

Elasticsearch批处理操作——bulk API

Elasticsearch之批量操作bulk

Elasticsearch之批量操作bulk

初识ElasticSearch -批量操作之bulk | 条件查询 | 其它查询

初识ElasticSearch -批量操作之bulk | 条件查询 | 其它查询