Elasticsearch Document Bulk API详解、原理与示例

本文详细介绍了Elasticsearch的Bulk API,包括index、update和delete操作的有效载荷,以及Bulk API的通用特性,如版本管理、路由和等待激活分片。还提供了一个Bulk API的示例代码,展示如何使用Java的RestHighLevelClient进行批量操作。最后,作者分享了个人的编程经验,鼓励开发者系统学习以提升技能。

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

有效载荷说明

1、index | create

其有效载荷为_source字段。

2、update

其有效载荷为:partial doc, upsert and script。

3、delete

没有有效载荷。

对请求格式为什么要设计成metdata+有效载体的方式,主要是为了在接受端节点(所谓的接受端节点是指收到命令的第一节点),只需解析 metadata,然后将请求直接转发给对应的数据节点。

3、bulk API通用特性分析

3.1 版本管理

每一个Bulk条目拥有独自的version,存在于请求条目的item的元数据中。

3.2 路由

每一个Bulk条目各自生效。

3.3 Wait For Active Shards

通常可以设置BulkRequest#waitForActiveShards来要求Bulk批量执行之前要求处于激活的最小副本数。

4、Bulk Demo

public static final void testBulk() {

RestHighLevelClient client = EsClient.getClient();

try {

IndexRequest indexRequest = new IndexRequest(“twitter”, “_doc”, “12”)

.source(buildTwitter(“dingw”, “2009-11-18T14:12:12”, “test bulk”));

UpdateRequest updateRequest = new UpdateRequest(“twitter”, “_doc”, “11”)

.doc(new IndexRequest(“twitter”, “_doc”, “11”)

.source(buildTwitter(“dingw”, “2009-11-18T14:12:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值