package util import ( elastic2 "app.yhyue.com/moapp/esv1/gopkg.in/olivere/elastic.v1" util "app.yhyue.com/moapp/jybase/common" elastic "app.yhyue.com/moapp/jybase/esv1" "log" "runtime" ) // GetAggs 聚合查询 func GetAggs(index, itype, query string) (aggs elastic2.Aggregations, count int64, hist []*elastic2.SearchHit) { defer util.Catch() client := elastic.GetEsConn() defer func() { go elastic.DestoryEsConn(client) }() if client != nil { defer func() { if r := recover(); r != nil { log.Println("[E]", r) for skip := 1; ; skip++ { _, file, line, ok := runtime.Caller(skip) if !ok { break } go log.Printf("%v,%v\n", file, line) } } }() searchResult, err := client.Search().Index(index).Type(itype).Source(query).Do() if err != nil { log.Println("从ES查询出错", err.Error()) } count = searchResult.Hits.TotalHits hist = searchResult.Hits.Hits aggs = searchResult.Aggregations } return }