Bulk + Update API


#1

Hi, I have some trouble making my bulk-update API work.
I have Elasticsearch 6.2.

So here the SQL request:

String sqlBulk = "SELECT id "
        + "from table tab "
        + "ORDER BY tab.ID ASC LIMIT  ?  ";
PreparedStatement preparedStatement = connection.prepareStatement(sqlBulk);
preparedStatement.setInt(1, 1);
ResultSet reSet = preparedStatement.executeQuery();

And there the connection to ES, creation of the bulk and the map.

  RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(
                new org.apache.http.HttpHost("localhost", 9200, "http")));

BulkRequest request = new BulkRequest();

while (reSet.next()) {

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("comment", "daily update");
jsonMap.put("the_id", reSet.getString("tab.id"));

request.add(new UpdateRequest("entite", "doc","101") 
         .doc(jsonMap, XContentType.JSON));

}

And here's when the bulk is supposed to be sent.

BulkResponse bulkResponse = client.bulk(request);

It supposed to update one document (the 101) with the field comment (with the string "daily update") and the field the_id (with the id found).

The program run but nothing get updated. Do you have any ideas?


#2

I should add that I've managed to make the Bulk-Index API working properly and the Update API as well.

But for the amount of data that I have, I must use the Bulk API with the Update one.

Let me know if I'm not clear enough somewhere.

The question is: How do you manage to make the UpdateRequest work in a BulkRequest ?


#3

Ok. It seem like the problem was that the mapping type simply should have been "_doc" instead of "doc".

I don't know why the documentation advise for one at some point and the other later on.


(system) #4

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