我正在尝试以无痛的聚合方式访问文档字段,如下所示:
"aggs": {
"errors": {
"nested": {
"path": "summary.testResult.testSuites.testCases.errors"
},
"aggs": {
"message": {
"terms": {
"field": "summary.testResult.testSuites.testCases.errors.message.keyword",
"size": 20,
"script": {
"source": "def total=0;
for (int i = 0; i < doc['summary']['testResult'].length; ++i)
total += doc['summary']['testResult']['numOfErrors'].value;
return total;"
}
}
}
}
}
}
但是经过一些研究,我意识到
”同时为“ 汇总后,该脚本将被视为值脚本。而 普通脚本在文档级别进行评估(即该脚本具有 访问与文档关联的所有数据),值脚本 在价值水平上进行评估。在此模式下,值是 从配置的字段中提取,脚本用于应用 在这些值上进行“转换”。”
但是我需要在文档级别评估脚本,以便我可以进行一些复杂的计算(不限于加法)。有什么方法可以实现我想要的吗?
更新: 我发现可以使用“热门匹配”来获取搜索结果中属于某个存储桶的文档,但这只能使我最多获取100个文档,因此这不是一个可行的解决方案。