sunty
2020-08-24 3b2d91bee9c7385927110b0c3de988ffe78931d8
EsApi.go
@@ -160,7 +160,7 @@
}
//根据摄像机列表和时间查询人员浏览轨迹
func GetPersonDataByCameraIdAndTime(cameraId []string, startTime string, endTime string, serverIp string, ServerPort string, indexName string) ([]map[string]interface{}, error) {
func GetPersonDataByCameraIdAndTime(cameraId []string, startTime string, endTime string, serverIp string, ServerPort string, indexName string) (map[string]interface{}, error) {
   esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
   personUrl := "http://" + serverIp + ":" + ServerPort + "/" + indexName + "/_search"
   personBody := `{
@@ -202,25 +202,120 @@
            "picMaxUrl",
            "targetInfo.belongsTargetId",
            "targetInfo.targetLocation",
         "picWH"
         "picWH.picW"
        ]
    }
}`
   //fmt.Println(personUrl)
   //fmt.Println(personBody)
   source := make(map[string]interface{})
   queryStartTime := time.Now()
   buf, err := EsReq("POST", personUrl, []byte(personBody))
   if err != nil {
      return nil, err
   }
   queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000
   sources, err := Sourcelist(buf)
   if err != nil {
      return nil, err
   }
   resData,err := PerSonAnalysis(sources)
   source["result"] = resData
   source["total"] = len(resData)
   source["queryUseTime"] = queryUseTime
   //println(sources)
   return resData, nil
   return source, nil
}
//根据时间范围,摄像机列表,分组聚合人脸列表,返回分组数据
func GetFaceDataBucketsByCameraIdAndTimeReturnByGrouped(cameraId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) {
   esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
   var buckersUrl = "http://" + serverIp + ":" + ServerPort + "/" + indexName + "/_search"
   var buckersBody = `{
    "query": {
        "bool": {
            "filter": [
                {
                    "range": {
                        "picDate": {
                            "gte": "` + startTime + `",
                            "lte": "` + endTime + `"
                        }
                    }
                },
                {
                    "term": {
                        "targetInfo.targetType.raw": "FaceDetect"
                    }
                },
                {
                    "terms": {
                        "cameraId": ["` + esCameraId + `"]
                    }
                }
            ]
        }
    },
    "size": 0,
    "aggs": {
        "buckets_aggs": {
            "composite": {
                "sources": [
                    {
                        "baseInfo.targetId": {
                            "terms": {
                                "field": "baseInfo.targetId"
                            }
                        }
                    },
                    {
                        "cameraId": {
                            "terms": {
                                "field": "cameraId"
                            }
                        }
                    }
                ],
                "size": 100000000
            },
            "aggs":{
                "top_attention_hits":{
                    "top_hits":{
                        "size": 1000000,
                        "sort": [
                            {
                                "picDate": {
                                    "order": "asc"
                                }
                            }
                        ],
                        "_source":{
                            "includes":["baseInfo.targetId","cameraId","cameraName","cameraAddr","targetInfo.targetScore","targetInfo.picSmUrl","showLabels","baseInfo.tableId","baseInfo.tableName","baseInfo.bwType","baseInfo.targetName","baseInfo.compareScore","picDate","picMaxUrl","picWH"]
                        }
                    }
                }
            }
        }
    }
}`
   sources := make(map[string]interface{})
   queryStartTime := time.Now()
   buf, err := EsReq("POST", buckersUrl, []byte(buckersBody))
   if err != nil {
      return nil, err
   }
   queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000
   //fmt.Println(queryUseTime)
   tmpSources, err := SourceAggregationsReturnByGrouped(buf, thresholdTime)
   if err != nil {
      return nil, err
   }
   sources["result"] = tmpSources
   sources["total"] = len(tmpSources)
   sources["queryUseTime"] = queryUseTime
   //println(sources)
   return sources, nil
}
//根据时间范围,摄像机列表,分组聚合人脸列表
@@ -296,16 +391,17 @@
}`
   //fmt.Println(buckersUrl)
   //fmt.Println(buckersBody)
   queryStartTime := time.Now()
   buf, err := EsReq("POST", buckersUrl, []byte(buckersBody))
   if err != nil {
      return nil, err
   }
   queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000
   sources, err := SourceAggregations(buf, thresholdTime)
   sources, err := SourceAggregations(buf, thresholdTime,queryUseTime)
   if err != nil {
      return nil, err
   }
   //println(sources)
   return sources, nil
}