如何在Kibana中使用脚本字段对列表内的值求和
问题:gapsLength列表求和失败求助
我尝试对gapsLength字段返回的整数列表值进行求和,但始终未成功。该列表包含多个整数值。
我尝试的代码如下:
int sum = 0; for (int number : doc["gap average.gapsLength"]) { sum += number; } return sum;
解决思路
- 先确认
doc["gap average.gapsLength"]的返回类型:打印它的类信息,判断是否为List<Integer>或可迭代的整数集合System.out.println(doc["gap average.gapsLength"].getClass()); - 若返回的是
List<Object>,需先转型再遍历求和:int sum = 0; List<Object> gapsList = (List<Object>) doc["gap average.gapsLength"]; for (Object item : gapsList) { sum += (Integer) item; } return sum; - 用Java 8+流操作简化求和(兼容类型转换):
return ((List<?>) doc["gap average.gapsLength"]) .stream() .mapToInt(obj -> (Integer) obj) .sum(); - 检查字段名是否正确:确认
"gap average.gapsLength"的拼写、空格、大小写是否与实际字段完全匹配,避免因字段名错误导致获取不到目标列表。
内容的提问来源于stack exchange,提问作者Filipe Soares
相关产品推荐
相关产品推荐

