# Bulk API JAva

**URL:** https://discuss.elastic.co/t/bulk-api-java/80762
**Category:** Elasticsearch
**Created:** [March 30, 2017, 11:10pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762 "2017-03-30T23:10:18Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![billnbell](https://avatars.discourse-cdn.com/v4/letter/b/eb8c5e/32.png) [@billnbell](https://discuss.elastic.co/u/billnbell)
#### Post date: [March 30, 2017, 11:10pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762/1 "2017-03-30T23:10:18Z")

</div>

Do we need to close() the bulk request? Or can we just ignore it if we have 0 requests in there?

```
> if (bulk.numberOfActions() > 0) {
> LOGGER.debug("Elasticsearch Writing [{}]", bulk.request().requests().size());
> BulkResponse bulkResponse = bulk.get();
> if (bulkResponse.hasFailures()) {
> for (BulkItemResponse r : bulkResponse.getItems()) {
> LOGGER.warn("Errors on Bulk Update {}", r.getFailureMessage());
> }
> }
> if (isImmediate) {
> commitTransaction(client, true);
> }
> } else {
> // ANYTHING HERE?
> LOGGER.info("Elasticsearch bulk request was 0 actions");
> }
```

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [March 30, 2017, 11:37pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762/2 "2017-03-30T23:37:01Z")

</div>

If you mean BulkRequestBuilder, it is not closable, so you don't need to and and cannot close it.

By the way, have you seen [BulkProcessor](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk-processor.html)? It is typically a good place to start when you are dealing with bulk indexing from java.

---

<div class="post-metadata">

### Author: ![billnbell](https://avatars.discourse-cdn.com/v4/letter/b/eb8c5e/32.png) [@billnbell](https://discuss.elastic.co/u/billnbell)
#### Post date: [April 4, 2017, 9:42pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762/3 "2017-04-04T21:42:48Z")

</div>

Question for you.

We are using:

> bulk.add(client.prepareUpdate(newIndexname, documentType, documentId)  
> .setScript(new Script(ScriptType.INLINE, "painless", "ctx.\_source." + DATA\_FIELD + "." + field + ".remove(ctx.\_source." + DATA\_FIELD + "." + field + ".indexOf(params.val));", params))  
> .setDetectNoop(false));

Will this work with the Bulk Processor?

There appears to be only these 2 calls with it?

> bulkProcessor.add(new IndexRequest("twitter", "tweet", "1").source(/\* your doc here \*/));  
> bulkProcessor.add(new DeleteRequest("twitter", "tweet", "2"));

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [April 4, 2017, 10:51pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762/4 "2017-04-04T22:51:12Z")

</div>

The method signature is `public BulkProcessor add(DocWriteRequest request)` and `DocWriteRequest` is implemented by `DeleteRequest`, `IndexRequest`, and `UpdateRequest`. Did you try it? Did you get any error messages?

---

<div class="post-metadata">

### Author: ![billnbell](https://avatars.discourse-cdn.com/v4/letter/b/eb8c5e/32.png) [@billnbell](https://discuss.elastic.co/u/billnbell)
#### Post date: [April 6, 2017, 9:46pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762/5 "2017-04-06T21:46:01Z")

</div>

Thanks that works.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [May 4, 2017, 9:46pm UTC](https://discuss.elastic.co/t/bulk-api-java/80762/6 "2017-05-04T21:46:02Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
