专栏首页强仔仔Java API批量操作Elasticsearch

Java API批量操作Elasticsearch

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/80413061

上一节讲到如何对索引进行增删改查操作,但是都是针对于单个的来说,这节课就开始介绍如何批量的创建、修改、删除索引。废话不多说,我们直接看具体代码。

1.批量创建索引

/**

* 批量添加索引

* @throws IOException

*/

@Test

public void batchAddIndex() throws IOException {

BulkRequestBuilder bulkRequest = client.prepareBulk();

bulkRequest.add(client.prepareIndex("batch_test1", "batch", "1")

.setSource(jsonBuilder()

.startObject()

.field("user", "lzq")

.field("postDate", new Date())

.field("message", "trying out Elasticsearch")

.endObject()

)

);

bulkRequest.add(client.prepareIndex("batch_test2", "batch", "2")

.setSource(jsonBuilder()

.startObject()

.field("user", "zx")

.field("postDate", new Date())

.field("message", "another post")

.endObject()

)

);

BulkResponse bulkResponse = bulkRequest.get();

if (bulkResponse.hasFailures()) {

System.out.println("failures..............:"+bulkResponse.buildFailureMessage()

);

}

}

如图所示:批量创建的两个索引,在es系统里面都可以找到,所以说明索引创建是成功的。

这里需要注意的是,索引的名称不能大写,必须是小写或者下划线之类的。还有buildFailureMessage函数返回的是批量操作错误的失败信息,hasFailures返回的是批量操作是否正确。

2.批量修改索引

/**

* 批量修改索引

* @throws IOException

*/

@Test

public void batchUpdateIndex() throws IOException {

BulkRequestBuilder bulkRequest = client.prepareBulk();

bulkRequest.add(client.prepareUpdate("batch_test1", "batch", "1").setDoc(jsonBuilder()

.startObject()

.field("user", "修改lzq")

.field("postDate", new Date())

.field("message", "batch_test1被我修改了")

.endObject()));

bulkRequest.add(client.prepareUpdate("batch_test2", "batch", "2").setDoc(jsonBuilder()

.startObject()

.field("user", "修改zx")

.field("postDate", new Date())

.field("message", "batch_test1被我修改了")

.endObject()));

BulkResponse bulkResponse = bulkRequest.get();

if (bulkResponse.hasFailures()) {

System.out.println("failures..............:"+bulkResponse.buildFailureMessage()

);

}

}

如图所示,表示批量修改已经成功。这边需要注意的是索引是什么类型的数据,修改的时候传入的数据类型就必须是什么类型的数据。

3.批量删除索引

/**

* 批量删除索引

* @throws IOException

*/

@Test

public void batchDeleteIndex() throws IOException {

BulkRequestBuilder bulkRequest = client.prepareBulk();

bulkRequest.add(client.prepareDelete("batch_test1", "batch", "1"));

bulkRequest.add(client.prepareDelete("batch_test2", "batch", "2"));

BulkResponse bulkResponse = bulkRequest.get();

if (bulkResponse.hasFailures()) {

System.out.println("failures.............:"+bulkResponse.buildFailureMessage()

);

}

}

如图所示,数据已经被清空了,所以表示删除操作是成功的。

注意事项:

1.记住索引不能大写

2.保存的是什么类型的,修改也必须是对应的类型

3.记住只有批量添加修改删除,没有批量查询操作

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实现在 Eclipse 中编写 Markdown 文件

    实现在 Eclipse 中编写 Markdown 文件 摘要: 本文介绍了使用 Eclipse Markdown Editor 插件,来实现在 Eclips...

    用户1149268
  • Linux上面安装git

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    用户1149268
  • finally会不执行吗???

    不知道大家有没有问过自己,finally方法会在什么时候不执行呢?那我们下面来看看finally到底会不会不执行。

    用户1149268
  • 开展“云治理”是推进国家治理现代化的内在要求

    在大数据技术迅猛发展的时代背景下,“云治理”应运而生。“云治理”是国家治理发展的最新趋向,其治理主体、治理对象和治理逻辑等已大大超越传统国家治理的范畴,增添了虚...

    静一
  • Error:Execution failed for task ':RecyclerViewDemo:mergeDebugResources'.

    问题描述:博主在导入别人一个Demo时候,在编译时编译失败,打出如下错误日志信息

    IT大飞说
  • py2exe的安装 转

    下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#lazyflow

    晓歌
  • React Native组件篇(二) — Image组件

     这里的Image并不是iOS中的UIImage,而相当于UIImageView组件。通过这个组件可以展示各种各样的图片,而且在React Native中该组...

    ZY_FlyWay
  • 读论文:《Correlated-Q Learning》

    今天要读一篇 Amy Greenwald 的论文《Correlated-Q Learning》,先记一下论文中的基础概念,然后再去深入解读。

    杨熹
  • 【混沌工程】 使用toxiproxy模拟网络延迟

    官方地址: https://github.com/Shopify/toxiproxy

    二狗不要跑
  • MySQL表的数据量大小会影响索引的选择

    Clive

扫码关注云+社区

领取腾讯云代金券