Hi
I am using _update_by_query in following way:
POST /documents/_update_by_query { "script":{ "source":"for(int i = 0;i < ctx._source.fields.size();i++){for (int j = 0; j < params.field_uid.size();j++){ if(params.field_uid[j].type == \"group\"){ } else{ if(ctx._source.fields[i].uid == params.field_uid[j].uid){ ctx._source.fields.remove(i);} } }}", "params":{ "field_uid":[{"uid":"number","type":"number"},{"uid":"test","type":"group"}] } }, "query": { "term": { "name": "first" } } }
It is giving me following error:
{ "error": { "root_cause": [ { "type": "script_exception", "reason": "compile error", "script_stack": [ "... s.field_uid.size();j++){ if(params.field_uid[j].ty ...", " ^---- HERE" ], "script": "for(int i = 0;i < ctx._source.fields.size();i++){for (int j = 0; j < params.field_uid.size();j++){ if(params.field_uid[j].type == \"group\"){ } else{ if(ctx._source.fields[i].uid == params.field_uid[j].uid){ ctx._source.fields.remove(i);i--;} } }}", "lang": "painless" } ], "type": "script_exception", "reason": "compile error", "script_stack": [ "... s.field_uid.size();j++){ if(params.field_uid[j].ty ...", " ^---- HERE" ], "script": "for(int i = 0;i < ctx._source.fields.size();i++){for (int j = 0; j < params.field_uid.size();j++){ if(params.field_uid[j].type == \"group\"){ } else{ if(ctx._source.fields[i].uid == params.field_uid[j].uid){ ctx._source.fields.remove(i);i--;} } }}", "lang": "painless", "caused_by": { "type": "illegal_argument_exception", "reason": "Extraneous if statement." } }, "status": 500 }
Can anyone help me into this?
What is wrong here?