Elasticsearch批量操作

本文介绍了Elasticsearch的批量操作,包括POSTBulk接口用于创建、更新和删除文档,以及GET用于批量获取。文中详细阐述了不同操作类型如CREATE、UPDATE和DELETE的工作原理,并提供了相关示例。批量操作能有效提高效率,节省内存资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch批量操作

基本语法

##POST _bulk
##POST /<index_name>/_bulk
## {"action":{"metadata_key":"meta_value"}## action:create,updte,delete,index
## {"data"}

批量写入

批量写入节省堆内存,跟PUT写入原理不一样

要注意,必须写成如下格式

有点奇怪

POST _bulk
{"create":{"_id":"101","_index":"test_idx_aggs"}}
{"name":"test1","age":12}

批量get

GET test_index/_mget
{
	"ids": [1,2,3,4,5]
}
GET test_index/_mget
{
 "docs": [
  {"_id": 1,

   "_source":["ajmc"]

  },

  {

   "_id": 2,

   "_source":{

    "include":["jsbax_sjjh2_xz_ryjbxx_cleaning"],

    "exclude":["ajmc"]

   }

  }

 ]

}

支持的操作类型

op_type

有增删改查四种

DELETE,CREATE,UPDATE,INDEX

CREATE: 存在报错 不存在插入

UPDATE:有则全量覆盖,无则插入

# 逻辑删除;即使数据不存在也会创建一个空的记录然后不断更新_version字段

DELETE test_index/_doc/10



GET test_index/_doc/10

# 先执行DELETE操作之后_version字段已经不是0PUT test_index/_doc/10

{

 "name":"test"

} 
# 可以指定操作类型,必须使用 index是创建或更新操作

 POST test_index/_doc/10?op_type=index

 {

  "doc":{

   "age":10,

   "name":"test"

  }

 }

 GET test_index/_doc/10
# 部分更新 全量替换 PUT indexname/_doc/docid 

POST test_index/_doc/10/_update

{

"doc": {

 "age": 10,

 "name": "test"

}

}

GET test_index/_doc/10

批量删除

POST _bulk
{"delete":{"_id":"102","_index":"test_idx_aggs"}}
{"delete":{"_id":"103","_index":"test_idx_aggs"}}

## 支持不同op_type的批量比如同时增删改都可以的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值