aggsSearchUtil.go 975 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package util
  2. import (
  3. elastic2 "app.yhyue.com/moapp/esv1/gopkg.in/olivere/elastic.v1"
  4. util "app.yhyue.com/moapp/jybase/common"
  5. elastic "app.yhyue.com/moapp/jybase/esv1"
  6. "log"
  7. "runtime"
  8. )
  9. // GetAggs 聚合查询
  10. func GetAggs(index, itype, query string) (aggs elastic2.Aggregations, count int64, hist []*elastic2.SearchHit) {
  11. defer util.Catch()
  12. client := elastic.GetEsConn()
  13. defer func() {
  14. go elastic.DestoryEsConn(client)
  15. }()
  16. if client != nil {
  17. defer func() {
  18. if r := recover(); r != nil {
  19. log.Println("[E]", r)
  20. for skip := 1; ; skip++ {
  21. _, file, line, ok := runtime.Caller(skip)
  22. if !ok {
  23. break
  24. }
  25. go log.Printf("%v,%v\n", file, line)
  26. }
  27. }
  28. }()
  29. searchResult, err := client.Search().Index(index).Type(itype).Source(query).Do()
  30. if err != nil {
  31. log.Println("从ES查询出错", err.Error())
  32. }
  33. count = searchResult.Hits.TotalHits
  34. hist = searchResult.Hits.Hits
  35. aggs = searchResult.Aggregations
  36. }
  37. return
  38. }