aggsSearchUtil.go 849 B

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