Elasticsearch批量操作

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的批量比如同时增删改都可以的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值