ES的Bulk API主要用于在单个请求中,批量执行创建、更新、删除文档操作,避免循环发送大量的ES请求。

创建BulkRequest对象

BulkRequest request = new BulkRequest();

添加操作对象

支持index/update/delete操作。

批量index操作

// 通过add方法,添加IndexRequest对象,创建文档,下面插入3个文档

// ps: IndexRequest对象,以键值对的方式设置文档内容

request.add(new IndexRequest("posts").id("1")

.source(XContentType.JSON,"field", "foo"));

request.add(new IndexRequest("posts").id("2")

.source(XContentType.JSON,"field", "bar"));

request.add(new IndexRequest("posts").id("3")

.source(XContentType.JSON,"field", "baz"));

混合操作

批量执行文档的删除、更新、创建操作

request.add(new DeleteRequest("posts", "3"));

request.add(new UpdateRequest("posts", "2")

.doc(XContentType.JSON,"other", "test"));

request.add(new IndexRequest("posts").id("4")

.source(XContentType.JSON,"field", "baz"));

其他可选参数

timeout

设置请求超时时间

request.timeout(TimeValue.timeValueMinutes(2)); // 形式1:2分钟

request.timeout("2m"); // 形式2:2分钟

执行请求

BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT);

处理结果

if (bulkResponse.hasFailures()) {

// 至少存在一个错误处理

}

// 循环检测批量操作结果

for (BulkItemResponse bulkItemResponse : bulkResponse) {

DocWriteResponse itemResponse = bulkItemResponse.getResponse();

// 根据操作类型检测执行结果

switch (bulkItemResponse.getOpType()) {

case INDEX:

case CREATE:

// 处理创建请求

IndexResponse indexResponse = (IndexResponse) itemResponse;

break;

case UPDATE:

// 处理更新请求

UpdateResponse updateResponse = (UpdateResponse) itemResponse;

break;

case DELETE:

// 处理删除请求

DeleteResponse deleteResponse = (DeleteResponse) itemResponse;

}

}

es bulk java_Java Elasticsearch Bulk API 批量操作相关推荐

  1. ES系列、Elasticsearch Suggester API(自动补全)

    1.概念 1.1 补全api主要分为四类 Term Suggester(纠错补全,输入错误的情况下补全正确的单词) Phrase Suggester(自动补全短语,输入一个单词补全整个短语) Comp ...

  2. 【Elasticsearch】es 5.3.0 bulk index 性能调优实践

    1.概述 转载:elasticsearch5.3.0 bulk index 性能调优实践 一.集群基本信息 每天日志量70亿 ES版本: 5.3.0 机器部署 master node: 3台 data ...

  3. ElasticSearch bulk批量增删改语法(来自学习资料 + 自己整理,第27节)

    1 bulk语法 通过bulk语法,可以将crud所需的不同的操作放在一个语句里面. 先来查找一下看是否有数据: 查询命令为如下时: GET /test_index/test_type/1 查询的结果 ...

  4. Elasticsearch8.0版本中Elasticsearch Java API Client客户端的基本使用方法

    关于Elasticsearch Java API Client客户端如何连接以及如何对索引和文档进行基本的增删改查操作请查看我的上一篇博文:Elasticsearch RestHighLevelCli ...

  5. Elasticsearch Java API 很全的整理以及架构剖析

    Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...

  6. Elasticsearch Search API之(Request Body Search 查询主体)

    作者介绍:<RocketMQ技术内幕>作者,中间件兴趣圈微信公众号维护者,文末有对应的二维码,关注后可以与作者更好的互动. 本文有点长,看完可能需要点耐心,本文详细介绍了es三种分页方式. ...

  7. ElasticSearch搜索引擎API笔记

      ElasticSearch搜索引擎API笔记 1. pom.xml <dependency> <groupId>org.elasticsearch.client</g ...

  8. Elasticsearch Javascript API增删改查

    查询 根据索引.类型.id进行查询: client.get({ index:'myindex', type:'mytype', id:1 },function(error, response){// ...

  9. ElasticSearch Java Api(四) -删除索引

    删除可以是删除整个索引库,也可以根据文档id删除索引库下的文档,还可以通过query查询条件删除所有符合条件的数据. 一.删除整个索引库 下面的例子会删除indexName索引: DeleteInde ...

最新文章

  1. 综述:光流估计从传统方法到深度学习
  2. 薛澜:人工智能发展要让创新驱动和敏捷治理并驾齐驱
  3. 授权公钥登录,sudo权限脚本
  4. Java中StringBuilder的清空方法比較
  5. java 获取物理路径_JSP---jsp页面获取物理路径
  6. 当AD19原理图导出位PCB图时报错UnkownPin和Failed to add class member可能的解决办法
  7. 【机器学习】隐马尔可夫模型及其三个基本问题(二)观测序列概率计算算法及python实现
  8. 转:程序员从初级到中级10个秘诀
  9. C#经纬度坐标算距离
  10. python中round(x、2)是什么意思_python中round函数具体使用详解
  11. Python面向对象加强2.Python 中类的内置属性和内置方法(魔法函数)
  12. GAMMA初学笔记二
  13. 黄蓝专场之 | 小蓝单车生死故事
  14. 如何远程办公 远程办公操作指南 7款好用的远程办公软件
  15. 酒店智能门锁方案功能介绍_模组_西城微科
  16. 脱发的各种类型里,想判断自己是否属于雄激素性脱发、处于哪个阶段,怎么办?
  17. 【STM32】MDK点 Reset and Run 还是要点复位的运行解决方案
  18. CASIA-Webface数据集
  19. System Generator简介
  20. 2021年PMP®考试改革

热门文章

  1. 电源模块可以并联使用吗?!
  2. 毕设项目:基于BS模型的在线OJ系统
  3. 全球及中国智能Android电视行业竞争情况及营销趋势预测报告(2022-2027)
  4. Wh问句,疑问句,祈使句,感叹句,10
  5. vue高德地图搜索功能
  6. 【JavaScript】制作一个抽奖转盘页面
  7. ubuntu不支持安装搜狗_ubuntu搜狗输入法安装失败,导致无法进入桌面
  8. 正态分布的前世今生 (上)
  9. scheme唤醒外部APP
  10. www.14zz.com www.14zz.com 免费 资料库