I have tried using param._source
as suggested, but still not working.
This is not populating the runtime field:
PUT employee/_mappings
{
"runtime": {
"empRoles": {
"type": "keyword",
"script": """if (doc["roles.name.raw"].size()!=0 ) {
for(item in params._source.roles.name.raw) {
emit(item) ;
}
}
"""
}
}
}
The following one results in error cannot cast from [java.lang.String[]] to [void]
, as expected:
PUT employee/_mappings
{
"runtime": {
"empRoles": {
"type": "keyword",
"script": """String[] empRoles;
if (doc["roles.name.raw"].size()!=0 ) {
int i=0;
for(item in params._source.roles.name.raw) {
empRoles[i++]=item
}
}
return empRoles;
"""
}
}
}