Java API批量操作Elasticsearch

上一节讲到如何对索引进行增删改查操作,但是都是针对于单个的来说,这节课就开始介绍如何批量的创建、修改、删除索引。废话不多说,我们直接看具体代码。
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.记住只有批量添加修改删除,没有批量查询操作

对文章有什么疑问或者想要看更多文章可以加我订阅号,欢迎大家的踩踩~

猜你喜欢

转载自blog.csdn.net/linzhiqiang0316/article/details/80413061
今日推荐