替换 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还没有发布
我正在将 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还没有发布