# Sending BulkRequest in Java API Client Elasticsearch version 7.16.3

**URL:** <https://discuss.elastic.co/t/sending-bulkrequest-in-java-api-client-elasticsearch-version-7-16-3/297715>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [February 21, 2022, 6:57am UTC](https://discuss.elastic.co/t/sending-bulkrequest-in-java-api-client-elasticsearch-version-7-16-3/297715 "2022-02-21T06:57:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![shanky25](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shanky25/32/102102_2.png) [@shanky25](https://discuss.elastic.co/u/shanky25)\
**Post date:** [February 21, 2022, 6:57am UTC](https://discuss.elastic.co/t/sending-bulkrequest-in-java-api-client-elasticsearch-version-7-16-3/297715/1 "2022-02-21T06:57:08Z")

</div>

Hi everyone,  
I have an java application which uses Elasticsearch and RestHighLevelClient.  
The application simply reads csv files and creates a List of Maps java using Jackson CSV Mapper.  
After that the Map is indexed in Elasticsearch by BulkRequest  
BulkRequest bulkRequest = new BulkRequest();

```auto
for ( Map<String, Object> value : data ) {
	bulkRequest.add(new IndexRequest(index).source(value));
}
BulkResponse br = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT); 

```

I have not make any class corresponding to document in Java .  
Now I am migrating my source code to new JavaAPI Client and using ElasticsearchClient in place of RestHighLevelClient.

> **[Elasticsearch Java API Client \[7.16\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html)**

Can, anyone guide me through how to create BulkRequest using ElasticsearchClient using Map only and not defining Document class because what i have seen mentioning Document type has been made mandatory.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 21, 2022, 10:38am UTC](https://discuss.elastic.co/t/sending-bulkrequest-in-java-api-client-elasticsearch-version-7-16-3/297715/2 "2022-02-21T10:38:34Z")

</div>

I did a similar move recently. Not exactly the same but still.

So this code could help you hopefully:

> <https://github.com/dadoonet/injector/blob/main/src/main/java/fr/pilato/elasticsearch/injector/injector/ElasticsearchInjector.java>

@swallez helped me writing it 😉

The client still needs some documentation to be written... A huge task for sure...

Also, this is a bit burried in the source code, but here is a useful Test class:

> <https://github.com/elastic/elasticsearch-java/blob/main/java-client/src/test/java/co/elastic/clients/elasticsearch/end_to_end/RequestTest.java#L198-L236>

---

<div class="post-metadata">

**Author:** ![shanky25](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shanky25/32/102102_2.png) [@shanky25](https://discuss.elastic.co/u/shanky25)\
**Post date:** [February 22, 2022, 2:48am UTC](https://discuss.elastic.co/t/sending-bulkrequest-in-java-api-client-elasticsearch-version-7-16-3/297715/3 "2022-02-22T02:48:44Z")

</div>

Thank you @dadoonet this is really helpful.

Finally got something to proceed with.

---

<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:** [March 22, 2022, 2:49am UTC](https://discuss.elastic.co/t/sending-bulkrequest-in-java-api-client-elasticsearch-version-7-16-3/297715/4 "2022-03-22T02:49:34Z")

</div>

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