Java = 8 弹性搜索服务器 = 7.16.3
我的代码从不返回聚合值,我尝试了大多数组合。下面是代码,请看这里能不能帮到你
@Repository
public interface ScPayHkIndexRepository extends ElasticsearchRepository<ScPayHkIndex, String> {
Stream<ScPayHkIndex> findByStatusNotAndExceptionTypeAndTimestampBetween(String status, String exceptionType, long from, long to);
Stream<ScPayHkIndex> findByPaymentTypeAndTimestampBetween(String paymentType, long from, long to);
@Query(("{\"bool\": {\"must\": [{\"match\": {\"status\": \"Completed\"}}]}},\"aggs\": {\"percentAggs\": {\"percentile_ranks\": {\"field\": \"Total_Time\"}}}"))
SearchHits<ScPayHkIndex> getPercentileRank();
default double getMyPercentileValue() {
SearchHits<ScPayHkIndex> response = getPercentileRank();
Aggregations aggregation = response.getAggregations();
PercentileRanks percentileRanks = aggregation.get("percentAggs");
// Get the desired percentile value using the percentile() method of the Percentiles object
double myPercentileValue = percentileRanks.percent(5000);
return myPercentileValue;
}