From 66d9e889d745b573ad8d67ac39e1d05335424f5c Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期四, 20 八月 2020 19:41:17 +0800 Subject: [PATCH] add buckets --- EsApi.go | 146 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 139 insertions(+), 7 deletions(-) diff --git a/EsApi.go b/EsApi.go index 6ce5e15..5b68d94 100644 --- a/EsApi.go +++ b/EsApi.go @@ -159,6 +159,139 @@ } +//鏍规嵁鏃堕棿鑼冨洿锛屾憚鍍忔満鍒楄〃锛屽垎缁勮仛鍚堜汉鑴稿垪琛� +func GetfaceDataBucketsBycameraIdAndTime(cameraId []string, startTime string, endTime string, 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" + } + } + } + ] + }, + "aggs":{ + "top_attention_hits":{ + "top_hits":{ + "size": 100, + "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"] + } + } + } + } + } + } +}` + buf, err := EsReq("POST", buckersUrl, []byte(buckersBody)) + if err != nil { + return nil, err + } + + sources, err := SourceAggregations(buf) + if err != nil { + return nil, err + } + //println(sources) + return sources,nil +} + +//鏍规嵁鎶撴媿浜哄憳id鏇存柊锛坧icurl锛夊浘鐗囧湴鍧�---棰勫紑鍙� +func UpdatePicUrlById(id string, picurl string, indexName string, serverIp string, serverPort string) (statu int, err error) { + + var info interface{} + url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query?refresh=true" + sourceStr := "ctx._source.videoUrl='" + picurl + "'" + var videoUrlInfo = ` + { + "script": { + "source": "` + sourceStr + `" + }, + "query": { + "term": { + "id": "` + id + `" + } + } + } + ` + //logPrint("url: ", url, videoUrlInfo) + buf, err := EsReq("POST", url, []byte(videoUrlInfo)) + if err != nil { + logPrint("http request videoUrlInfo info is err!") + statu = 500 + return statu, err + } + json.Unmarshal(buf, &info) + //logPrint(info) + out, ok := info.(map[string]interface{}) + if !ok { + logPrint("http response interface can not change map[string]interface{}") + statu = 500 + return statu, errors.New("http response interface can not change map[string]interface{}") + } + middle, ok := out["updated"].(float64) + if !ok { + logPrint("first updated change error!") + statu = 500 + return statu, errors.New("first updated change error!") + } + if middle == 1 { + statu = 200 + return statu, nil + } + if middle == 0 { + statu = 201 + return statu, errors.New("宸茬粡淇敼") + } + return statu, nil +} + //鏍规嵁鎶撴媿浜哄憳id鏇存柊锛坴ideourl锛夋憚鍍忔満鍦板潃 func UpdateVideourlById(id string, videoUrl string, indexName string, serverIp string, serverPort string, command int) (statu int, err error) { @@ -770,7 +903,7 @@ func GetOceanFeatures(serverIp string, serverPort string, queryNums int, indexName string, shards string, targetType string) ([]*protomsg.MultiFeaCache, error) { //queryIndexNum int //var dbinfos []*protomsg.MultiFeaCache - dbinfos := make([]*protomsg.MultiFeaCache,0) + dbinfos := make([]*protomsg.MultiFeaCache, 0) //dbinfosss := make([]*protomsg.MultiFeaCache,0) //dbinfoss = append(dbinfoss, dbinfosss...) @@ -819,20 +952,20 @@ //logPrint("url: ",reqJsonDSL) buf, err := EsReq("POST", url, []byte(reqJsonDSL)) if err != nil { - logPrint("EsReq: ",err) + logPrint("EsReq: ", err) return } // 杩斿洖 _source 鏁扮粍 sources, err := Sourcelistforscroll(buf) if err != nil { - logPrint("EsReq: ",err) + logPrint("EsReq: ", err) return } // 杩斿洖鎵�鏈夋煡璇㈢殑鏁版嵁 - ftmpDatas := Parsesources(sources["sourcelist"].([]map[string]interface{})) + ftmpDatas := Parsesources(sources["sourcelist"].([]map[string]interface{})) lock.Lock() - dbinfos = append(dbinfos,ftmpDatas...) + dbinfos = append(dbinfos, ftmpDatas...) //logPrint("prsLen: ", len(Parsesources(sources["sourcelist"].([]map[string]interface{})))) //logPrint("dbinfosLen: ", len(dbinfos)) lock.Unlock() @@ -921,14 +1054,13 @@ if err != nil { return false, errors.New("瑙g爜澶辫触") } - if resTotal == -1 || resTotal == 0{ + if resTotal == -1 || resTotal == 0 { result = false } else { result = true } return result, nil } - //鎸夋棩鏈熻寖鍥达紝鏈嶅姟鍣↖d鍒犻櫎鏁版嵁 func DeleteAnalyServerData(serverIp string, serverPort string, indexName string, startTime string, endTime string, analyServerId string) (result bool, err error) { -- Gitblit v1.8.0