我的索引之一的部分映射如下:
"schools": {
"type": "object",
"dynamic": true,
"properties": {}
}
现有文档的示例schools
对象是:
"schools": {
"8291": {
"max": 11,
"min": 11
},
"3546": {
"max": 12,
"min": 10
},
"3896": {
"max": 18,
"min": 12
}
}
我在 ES6.2 中有无痛脚本,其中动态key
(例如 3896)在运行时计算并作为参数传递给脚本
"script": {
"params": {
"key": key
},
"source": {
if (doc.containsKey('schools') && doc.schools.containsKey(key)){
String dynamic_key = "schools."+key+".min";
return doc[dynamic_key].value;
} else {
return 0;
}
}
所以如果传递key
的值是 3896,那么这应该返回 12。但我收到一条错误消息
No field found for [schools.3896.min] in mapping with types [myindexname]
我究竟做错了什么?访问在运行时计算键名以获取其值的动态对象的正确方法是什么?