Elasticsearch 8.3.3中如何从ParsedMax获取最大Double值
Elasticsearch 8.3.3 替代 ParsedMax.getValue() 的方案
在Elasticsearch 8.x版本中,ParsedMax类原有的getValue()方法已被移除,可通过以下两种方式实现相同的取值功能:
方案一:直接调用无参重载方法
新版本的ParsedMax提供了返回double类型的无参getValue()方法,可直接获取聚合得到的最大值,代码示例:
double val = parsedMax.getValue(); // 如需转换为Double包装类型 Double valWrapper = val;
方案二:带默认值的重载方法
如果聚合结果可能为空(无匹配数据),可以使用带默认值的方法避免异常,代码示例:
// 无聚合结果时返回指定默认值,此处以0.0为例 double val = parsedMax.getValue(0.0); Double valWrapper = val;
补充说明
从Elasticsearch 7.x开始,聚合相关的Parsed*类的取值方法就已调整为明确的基础类型返回,8.x延续了这一设计,目的是减少自动装箱拆箱的性能开销,同时让API语义更清晰。
内容的提问来源于stack exchange,提问作者Achaius
相关产品推荐
相关产品推荐

