From a46931eb698575476d15f0af5cae4ebe7edc45a3 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期一, 24 八月 2020 18:10:04 +0800 Subject: [PATCH] add auto param --- EsApi.go | 174 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 105 insertions(+), 69 deletions(-) diff --git a/EsApi.go b/EsApi.go index 875ba9a..13a40b5 100644 --- a/EsApi.go +++ b/EsApi.go @@ -161,32 +161,38 @@ //鏍规嵁鎽勫儚鏈哄垪琛ㄥ拰鏃堕棿鏌ヨ浜哄憳娴忚杞ㄨ抗 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) + + var filterArr []string + if cameraId != nil && len(cameraId) > 0{ + esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1) + filterArr = append(filterArr, `{ + { + "terms": { + "cameraId": ["`+esCameraId+`"] + } + }`) + } + filterArr = append(filterArr, `{ + "range": { + "picDate": { + "gte": "`+startTime+`", + "lte": "`+endTime+`" + } + } + }`) + filterArr = append(filterArr, ` { + "term": { + "targetInfo.targetType.raw": "Yolo" + } + }`) + queryStr := strings.Join(filterArr, ",") + personUrl := "http://" + serverIp + ":" + ServerPort + "/" + indexName + "/_search" personBody := `{ "query": { "bool": { "filter": [ - { - "range": { - "picDate": { - "gte": "` + startTime + `", - "lte": "` + endTime + `" - } - } - }, - { - "term": { - "targetInfo.targetType.raw": "Yolo" - } - }, - { - "terms": { - "cameraId": [ - "` + esCameraId + `" - ] - } - } + ` + queryStr + ` ] } }, @@ -214,12 +220,12 @@ if err != nil { return nil, err } - queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000 + queryUseTime := time.Now().Sub(queryStartTime).Seconds() * 1000 sources, err := Sourcelist(buf) if err != nil { return nil, err } - resData,err := PerSonAnalysis(sources) + resData, err := PerSonAnalysis(sources) source["result"] = resData source["total"] = len(resData) source["queryUseTime"] = queryUseTime @@ -229,31 +235,45 @@ } //鏍规嵁鏃堕棿鑼冨洿锛屾憚鍍忔満鍒楄〃锛屽垎缁勮仛鍚堜汉鑴稿垪琛�,杩斿洖鍒嗙粍鏁版嵁 -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) +func GetFaceDataBucketsByCameraIdAndTimeReturnByGrouped(cameraId []string, personId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) { + var filterArr []string + if cameraId != nil && len(cameraId) > 0{ + esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1) + filterArr = append(filterArr, `{ + "terms": { + "cameraId": ["`+esCameraId+`"] + } + }`) + } + if personId != nil &&len(personId) > 0{ + esPersonId := strings.Replace(strings.Trim(fmt.Sprint(personId), "[]"), " ", "\",\"", -1) + filterArr = append(filterArr, `{ + "terms": { + "baseInfo.targetId": ["`+esPersonId+`"] + } + }`) + } + filterArr = append(filterArr, `{ + "range": { + "picDate": { + "gte": "`+startTime+`", + "lte": "`+endTime+`" + } + } + }`) + filterArr = append(filterArr, ` { + "term": { + "targetInfo.targetType.raw": "FaceDetect" + } + }`) + queryStr := strings.Join(filterArr, ",") + 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 + `"] - } - } + ` + queryStr + ` ] } }, @@ -299,13 +319,15 @@ } } }` + //fmt.Println(buckersUrl) + //fmt.Println(buckersBody) 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 + queryUseTime := time.Now().Sub(queryStartTime).Seconds() * 1000 //fmt.Println(queryUseTime) tmpSources, err := SourceAggregationsReturnByGrouped(buf, thresholdTime) if err != nil { @@ -319,31 +341,45 @@ } //鏍规嵁鏃堕棿鑼冨洿锛屾憚鍍忔満鍒楄〃锛屽垎缁勮仛鍚堜汉鑴稿垪琛� -func GetFaceDataBucketsByCameraIdAndTime(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) +func GetFaceDataBucketsByCameraIdAndTime(cameraId []string, personId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) { + var filterArr []string + if cameraId != nil && len(cameraId) > 0{ + esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1) + filterArr = append(filterArr, `{ + "terms": { + "cameraId": ["`+esCameraId+`"] + } + }`) + } + if personId != nil &&len(personId) > 0{ + esPersonId := strings.Replace(strings.Trim(fmt.Sprint(personId), "[]"), " ", "\",\"", -1) + filterArr = append(filterArr, `{ + "terms": { + "baseInfo.targetId": ["`+esPersonId+`"] + } + }`) + } + filterArr = append(filterArr, `{ + "range": { + "picDate": { + "gte": "`+startTime+`", + "lte": "`+endTime+`" + } + } + }`) + filterArr = append(filterArr, ` { + "term": { + "targetInfo.targetType.raw": "FaceDetect" + } + }`) + queryStr := strings.Join(filterArr, ",") + 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 + `"] - } - } + ` + queryStr + ` ] } }, @@ -396,9 +432,9 @@ if err != nil { return nil, err } - queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000 + queryUseTime := time.Now().Sub(queryStartTime).Seconds() * 1000 - sources, err := SourceAggregations(buf, thresholdTime,queryUseTime) + sources, err := SourceAggregations(buf, thresholdTime, queryUseTime) if err != nil { return nil, err } @@ -407,7 +443,7 @@ //鏍规嵁鎶撴媿浜哄憳id鏇存柊锛坧icurl锛夊浘鐗囧湴鍧� func UpdatePicUrlById(id string, picUrl string, indexName string, serverIp string, serverPort string) (err error) { - updateTime := time.Now().Format("2006-01-02 15:04:05") + updateTime := time.Now().Format("2006-01-02 15:04:05") tRes, err := AIOceaninfosbyid([]string{id}, indexName, serverIp, serverPort) if err != nil || len(tRes) == 0 { return err @@ -415,10 +451,10 @@ picMaxUrls := tRes[0].PicMaxUrl sourceStr := ` "lang":"painless", - "inline": "ctx._source.picMaxUrl.add('` + picUrl + `');ctx._source.updateTime='`+updateTime+`'" + "inline": "ctx._source.picMaxUrl.add('` + picUrl + `');ctx._source.updateTime='` + updateTime + `'" ` if len(picMaxUrls) >= 2 { - sourceStr = `"source": "ctx._source.picMaxUrl[1]='` + picUrl + `';ctx._source.updateTime='`+updateTime+`'"` + sourceStr = `"source": "ctx._source.picMaxUrl[1]='` + picUrl + `';ctx._source.updateTime='` + updateTime + `'"` } var info interface{} url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query?refresh=true" -- Gitblit v1.8.0