elasticsearch - MVEL VerifyError with Bulk Update - Not updated few records in JAVA API -
i using elastic search bulk update java api. below script, using bulk update. in mapping nested object 'name' specified string field.
string updatescript = "if(ctx._source.containskey(\"nestedobjects\") && ctx._source.nestedobjects.size()>0) { int nestedsize = ctx._source.nestedobjects.size(); boolean isupdated = false; (int = 0; < nestedsize; i++) { if(ctx._source.nestedobjects[i].containskey(\"name\")) { if(ctx._source.nestedobjects[i].name == \"ram\") { ctx._source.nestedobjects[i].name = \"ricky\"; isupdated = true; } } } if(!isupdated) { ctx._source.nestedobjects.add(\"name\":\"ricky\"); } }";
below code using bulk update.
bulkrequestbuilder bulkrequestbuilder = client.preparebulk(); (int i=0; i<5; i++) { string documentid = string.value(i); bulkrequestbuilder.add(indexname, type, documentid).setscript(updatescript).setrouting(routingname).request()); } bulkresponse bulkresponse = bulkrequestbuilder.execute().actionget();
bulk failure message:
message [verifyerror[(class: asmaccessorimpl_2153668671377692494610, method: getvalue signature: (ljava/lang/object;ljava/lang/object;lorg/elasticsearch/common/mvel2/integration/variableresolverfactory;)ljava/lang/object;) expecting find integer on stack]]
note : few records not getting updated. if update again, other few records getting same error , not updated. record, got error first time got updated in second time.
Comments
Post a Comment