我试图了解使用groovy脚本时访问有效负载的最佳方法是什么。

我想做这样的事情:

sum = 0;
categories  = doc['category'].values;
for (category in categories){
   sum += category.payload
}
return sum;

编辑:
感谢@Val和@Lee H,我到了现在可以实际访问有效负载的位置。但是建议的解决方案是使用_index而不是我要查找的内容,_index允许访问索引范围内的统计信息,而不是针对特定文档。

我想遍历每个文档,并获取其有效负载,然后将其乘以一些常量,比如说。

这样做时:_index ['category']。get('term',_PAYLOADS)我将获得“term”的所有有效负载的列表,这不是我想要的。

那么,有没有一种方法可以从文档范围访问字段有效负载?

最佳答案

查看有关的文档
term positions and payloads
它显示了访问字段有效负载的示例

在此复制最后一个示例:

Example: sums up all payloads for the term foo.

termInfo = _index['my_field'].get('foo',_PAYLOADS);
score = 0;
for (pos in termInfo) {
    score = score + pos.payloadAsInt(0);
}
return score;

10-08 12:59