Elasticsearch5.0 Java Api(七) -- 彙總查詢

來源:互聯網
上載者:User

標籤:show   分享   als   transport   splay   except   void   cat   sock   

  測試彙總查詢功能

 1 package com.juyun.test; 2  3 import java.net.InetAddress; 4 import java.util.List; 5  6 import org.elasticsearch.action.search.SearchResponse; 7 import org.elasticsearch.client.Client; 8 import org.elasticsearch.common.settings.Settings; 9 import org.elasticsearch.common.transport.InetSocketTransportAddress;10 import org.elasticsearch.index.query.QueryBuilder;11 import org.elasticsearch.index.query.QueryBuilders;12 import org.elasticsearch.search.SearchHit;13 import org.elasticsearch.search.SearchHits;14 import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;15 import org.elasticsearch.search.aggregations.AggregationBuilder;16 import org.elasticsearch.search.aggregations.AggregationBuilders;17 import org.elasticsearch.search.aggregations.bucket.children.Children;18 import org.elasticsearch.search.aggregations.bucket.terms.Terms;19 import org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket;20 import org.elasticsearch.search.aggregations.metrics.avg.InternalAvg;21 import org.elasticsearch.search.aggregations.metrics.sum.InternalSum;22 import org.elasticsearch.transport.client.PreBuiltTransportClient;23 24 public class ElasticsearchAggregation {25 26     private static Client client;27     28     /**29      * 彙總查詢30      * @param args31      */32     public static void main(String[] args) {33 34         try {35             // 設定叢集名稱 36             Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();37             // 建立client38             client = new PreBuiltTransportClient(settings)39                     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("172.16.0.157"), 9300));40             41             long startTime=System.currentTimeMillis(); // 擷取開始時間    42             43             agg("flow", "data");44             //childQuery("newindex","http");45             46             long endTime=System.currentTimeMillis(); //擷取結束時間47             System.out.println("程式已耗用時間: "+(endTime-startTime)+"ms");48             49             50             // 關閉client51             client.close();52 53         } catch (Exception e) {54             e.printStackTrace();55         }56     }57 58     // 計算inbyte和outbyte的平均值59     public static void agg(String indexName, String typeName) {60         SearchResponse response = client61                                 .prepareSearch(indexName)62                                 .setTypes(typeName)63                                 .addAggregation(AggregationBuilders.avg("avgOfInbyte").field("inbyte"))64                                 .addAggregation(AggregationBuilders.avg("avgOfOutbyte").field("outbyte"))65                                 .addAggregation(AggregationBuilders.sum("sumOfInbyte").field("inbyte"))66                                 .addAggregation(AggregationBuilders.sum("sumOfOutbyte").field("outbyte"))67                                 .get();68 69         InternalAvg avgOfInbyte  = response.getAggregations().get("avgOfInbyte");70         InternalAvg avgOfOutbyte  = response.getAggregations().get("avgOfOutbyte");71         InternalSum sumOfInbyte = response.getAggregations().get("sumOfInbyte");72         InternalSum sumOfOutbyte = response.getAggregations().get("sumOfOutbyte");73         System.out.println("inbyte的平均值是:"+avgOfInbyte.getValue());74         System.out.println("outbyte的平均值是:"+avgOfOutbyte.getValue());75         System.out.println("inbyte的總值是:"+sumOfInbyte.getValue());76         System.out.println("outbyte的總值是:"+sumOfOutbyte.getValue());77     }78 }
ElasticsearchAggregation

 

Elasticsearch5.0 Java Api(七) -- 彙總查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.