我试图了解在使用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”的所有有效负载的列表,这不是我要找的。
那么有没有办法从文档范围访问字段有效负载?
答案 0 :(得分:1)
查看相关文档 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;
答案 1 :(得分:1)
您可以使用advanced scripting和_index
上下文变量来实现此目的。
Groovy在这里帮助一个很好的单行:
return _index['category'].get('term', _PAYLOADS).sum {it.payloadAsInt(0)}