替换 ElasticSearch 版本 7 中的 InternalSimpleValue 构造函数

Replacing InternalSimpleValue constructor in ElasticSearch version 7

我正在将 ElasticSearch Java 代码从 5.6 迁移到 7.7。 InternalSimpleValue 的构造函数已从 public 重构为受保护的访问。也许 Elastic 是故意不向后兼容的。

只是想知道是否有已知的替代品或解决方法? 其他 5.6 代码有可供选择的 7.7 类,但似乎这种方法尚未应用于 InternalSimpleValue 构造函数。

这是 5.6 版本的代码片段。

import org.elasticsearch.search.aggregations.pipeline.InternalSimpleValue;

@Override
public final SearchResponse execute(HttpServletRequest httpRequest, TemplateRequest request,     SearchResponse response) {
SearchResponse ret = response;
    Aggregations aggregations = response.getAggregations();
    if (null != aggregations) {
        @SuppressWarnings("unchecked") List<InternalAggregation> aggs =   (List<InternalAggregation>) (List<?>) (aggregations.asList());
        // call implementation to calculate value
        Double value = buildValue(httpRequest, request, response);
        aggs.add(new InternalSimpleValue(aggregationName, value, DocValueFormat.RAW, null, null));
    ....
    }
 }

构造函数在 this commit in October 2018 (when 7.0 came out) because they thought too many aggregation classes were public 中被包保护。

看起来他们最近(2020 年 5 月)恢复了 this commit 中的更改,并在 7.9 分支中再次使构造函数 public。不过很遗憾,7.9还没有发布