# Problem in data format during bulk insert in Elasticsearch using ElasticsearchClient in Java

**URL:** <https://discuss.elastic.co/t/problem-in-data-format-during-bulk-insert-in-elasticsearch-using-elasticsearchclient-in-java/344746>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [October 10, 2023, 1:55pm UTC](https://discuss.elastic.co/t/problem-in-data-format-during-bulk-insert-in-elasticsearch-using-elasticsearchclient-in-java/344746 "2023-10-10T13:55:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sushobhan\_Mudi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sushobhan_mudi/32/108639_2.png) [@Sushobhan\_Mudi](https://discuss.elastic.co/u/Sushobhan_Mudi)\
**Post date:** [October 10, 2023, 1:55pm UTC](https://discuss.elastic.co/t/problem-in-data-format-during-bulk-insert-in-elasticsearch-using-elasticsearchclient-in-java/344746/1 "2023-10-10T13:55:00Z")

</div>

I am inserting JSON data in Elasticsearch using ElasticearchClient Bulk Insert in Java, the code I have written is

```auto
static void submitBulkUsingElasticClient(JSONArray data) throws IOException {
        BulkRequest.Builder builder = new BulkRequest.Builder();

        ElasticsearchClient esClient = getElasticsearchClient();

        for (Object document : data)
            if (document instanceof JSONObject) {
                JSONObject jsonObject = new JSONObject(document);
                builder.operations(op -> op
                        .index(idx -> idx
                                .index("demo_data")
                                .document(jsonObject.toMap())
                                .id(String.valueOf(((JSONObject) document).getInt("id")))
                        )

                );
            }

        BulkResponse response = esClient.bulk(builder.build());

        // Log errors, if any
        if (response.errors()) {
            System.out.println("Bulk had errors");
            for (BulkResponseItem item : response.items()) {
                if (item.error() != null) {
                    System.out.println(item.error().reason());
                }
            }
        }

        System.out.println("response = " + response.toString());
    }

```

And the sample JSON data I have taken is this,

 ![ELK2](https://us1.discourse-cdn.com/elastic/original/3X/f/d/fdac876b04e7109a347c0f58b0fab2969966f34a.png)

During single data insert data is populating and visualizing in Kibana properly. Here is the example for single data insertion,

 ![ELK4](https://us1.discourse-cdn.com/elastic/original/3X/0/b/0bef4e49778b7ae5ee66415ddf2f7001a97834d0.png)

Here is the code of Single data Insertion,

```auto
static void submitRequestUsingElasticClient(String data) throws IOException {
        Reader input = new StringReader(data);

        IndexRequest<JsonData> request = IndexRequest.of(i -> i
                .index("demo_data")
                .withJson(input)
        );

        ElasticsearchClient esClient = getElasticsearchClient();

        IndexResponse response = esClient.index(request);

        System.out.println("Indexed with version " + response.version());
    }

```

But during bulk insertion the data is getting inserted successfully but not in proper format, its looking something like this,

 ![ELK3](https://us1.discourse-cdn.com/elastic/original/3X/0/d/0d500a1fba21366b5a0a0b1985fe2f84c853fd1e.png)

I don't understand the problem why the format is like this. Is it because Elasticsearch is serializing the data or is there any field missing in BulkRequest Builder operation?

Please help me..

---

<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:** [November 7, 2023, 1:55pm UTC](https://discuss.elastic.co/t/problem-in-data-format-during-bulk-insert-in-elasticsearch-using-elasticsearchclient-in-java/344746/2 "2023-11-07T13:55:03Z")

</div>

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