类org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStats源码实例Demo

下面列出了怎么用org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStats的API类实例代码及写法,或者点击链接到github查看源代码。

private static StatisticsResult reduceStatisticsResults(List<Aggregation> aggs) {
    List<StatisticsResult> results = new ArrayList<>();
    for (Aggregation agg : aggs) {
        if (agg instanceof ExtendedStats) {
            ExtendedStats extendedStats = (ExtendedStats) agg;
            long count = extendedStats.getCount();
            double sum = extendedStats.getSum();
            double min = extendedStats.getMin();
            double max = extendedStats.getMax();
            double standardDeviation = extendedStats.getStdDeviation();
            results.add(new StatisticsResult(count, sum, min, max, standardDeviation));
        } else {
            throw new VertexiumException("Aggregation is not a statistics: " + agg.getClass().getName());
        }
    }
    return StatisticsResult.combine(results);
}
 
源代码2 项目: dk-fitting   文件: SearchServiceImpl.java
/**
 * 聚合统计,
 * @param hostIp ES集群的ip地址
 * @param clusterName ES集群集群名称
 * @param indexName ES集群的索引名称,可使用多个索引 indexName="test2,test1,test";
 * @param typeName 索引类型,可多个 typeName="doc,pdf,test";
 * @param port ES集群的端口号
 * @param aggFdName 需要统计的字段
 * @param aggType 记录偏移 , null-默认为10
 * @return
 * @throws TException
 */
@Override
public Map<String, String> StatsAggregation(String hostIp, int port, String clusterName, String indexName, String typeName, String aggFdName, String aggType) throws TException {
    Client client=null;
    try {
        client = ESUtils.getClient( hostIp, port, clusterName );
    } catch (Exception e) {
        e.printStackTrace();
    }
    ExtendedStatsAggregationBuilder aggregationBuilder = AggregationBuilders.extendedStats( "agg" ).field( aggFdName );
    SearchResponse response = client.prepareSearch( indexName ).addAggregation( aggregationBuilder ).get();
    ExtendedStats agg = response.getAggregations().get( "agg" );
    Map<String,String> map=new LinkedHashMap<>(  );
    map.put("avg", agg.getAvgAsString() );
    map.put("count", String.valueOf( agg.getCount() ) );
    map.put("sum", agg.getSumAsString() );
    map.put("max", agg.getMaxAsString() );
    map.put("min", agg.getMinAsString() );
    //以字符串形式收集的值的标准偏差。
    map.put( "StdDeviation",agg.getStdDeviationAsString() );
    //平方和
    map.put( "SumOfSquares" ,agg.getSumOfSquaresAsString());
    //方差
    map.put( "Variance",agg.getStdDeviationAsString() );
    System.out.println( "stats avg"+agg.getAvgAsString()+"count"+agg.getCount()+"max"+agg.getMaxAsString()+"min"+agg.getMinAsString()+"sum"+agg.getSumAsString() );

    return map;
}
 
 类所在包
 类方法
 同包方法