尝试在 java 中使用聚合,使用 ElasticsearchRepository 从 Elasticsearch 获取聚合数据。但是我的 aggs 总是空的

问题描述 投票:0回答:0

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;
   }
java elasticsearch spring-data-elasticsearch elasticsearch-aggregation resthighlevelclient
© www.soinside.com 2019 - 2024. All rights reserved.