From 845f643c1aaaa37a53219b6f11b77a1b333cf619 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期一, 09 十二月 2019 20:42:28 +0800 Subject: [PATCH] add track cache util --- EsApi.go | 91 ++++++++++++++++++++++++--------------------- 1 files changed, 49 insertions(+), 42 deletions(-) diff --git a/EsApi.go b/EsApi.go index ccf41b4..1ab935d 100644 --- a/EsApi.go +++ b/EsApi.go @@ -72,45 +72,46 @@ if err != nil { return "", err } + feature := sources[0]["targetInfo"].([]interface{})[0].(map[string]interface{})["feature"].(string) return feature, nil } //鏍规嵁鐩爣id杩藉姞璺熻釜淇℃伅 -func AppendTargetInfo(id string,targetInfo string, indexName string, serverIp string, serverPort string)(string,error){ - if targetInfo == ""{ - return "",errors.New("append data is nil") +func AppendTargetInfo(id string, targetInfo string, indexName string, serverIp string, serverPort string) (string, error) { + if targetInfo == "" { + return "", errors.New("append data is nil") } var info interface{} url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query?refresh=true" jsonDSL := `{ "query": { "term":{ - "id":"`+id+`" + "id":"` + id + `" } }, "script": { "lang": "painless", "inline": "ctx._source.linkTagInfo.add(params.newparam)", "params": { - "newparam": `+targetInfo+` + "newparam": ` + targetInfo + ` } } }` fmt.Println(jsonDSL) buf, err := EsReq("POST", url, []byte(jsonDSL)) if err != nil { - return "",err + return "", err } - json.Unmarshal(buf,&info) + json.Unmarshal(buf, &info) out, ok := info.(map[string]interface{}) fmt.Println(out) if !ok { - return "",errors.New("http response interface can not change map[string]interface{}") + return "", errors.New("http response interface can not change map[string]interface{}") } middle, ok := out["updated"].(float64) if !ok { - return "",errors.New("first updated change error!") + return "", errors.New("first updated change error!") } mes := "" if middle == 1 { @@ -119,7 +120,7 @@ if middle == 0 { mes = "宸茬粡杩藉姞" } - return mes,nil + return mes, nil } @@ -176,7 +177,7 @@ return statu } -//鑾峰彇褰撳墠鑺傜偣鎶撴媿搴撴墍鏈変汉鍛業D +//鑾峰彇褰撳墠鑺傜偣鎶撴媿搴撴墍鏈変汉鍛業D*缂撳瓨* func GetAllLocalVideopersonsId(compareArgs protomsg.CompareArgs, indexName string, serverIp string, serverPort string, alarmLevelTypes string) (capturetable []string) { queryStr := "" queryBody := compareArgs.InputValue @@ -347,26 +348,26 @@ "/" + indexName + "/_search" var filterArr []string if isAlarm != "all" { - filterArr = append(filterArr,` { + filterArr = append(filterArr, ` { "term":{ - "isAlarm":"` + isAlarm + `" + "isAlarm":"`+isAlarm+`" } }`) } if category != "all" { - filterArr = append(filterArr,` { + filterArr = append(filterArr, ` { "term":{ - "targetInfo.targetType":"` + category + `" + "targetInfo.targetType":"`+category+`" } }`) } - queryStr := `"query":{ + queryStr := `"query":{ "bool":{ "filter":[ - `+strings.Join(filterArr,",")+` + ` + strings.Join(filterArr, ",") + ` ] } },` @@ -635,22 +636,22 @@ } /****************************************浠ヤ笅涓簊dkCompare姣斿缂撳瓨浣跨敤鏂规硶*********************************************/ -//鑾峰彇鏌ヨ鎬绘暟 -func GetTotal(serverIp string, serverPort string, indexName string, shards string) (total int) { +//鑾峰彇鏌ヨ鎬绘暟 *缂撳瓨* +func GetTotal(serverIp string, serverPort string, indexName string, shards string, targetType string) (total int) { JsonDSL := `{ "size": 0, "query": { "bool": { "filter": [{ "term": { - "targetInfo.targetType.raw": "face" + "targetInfo.targetType.raw": "`+targetType+`" } }] } } }` - url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search" + url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local" buf, err := EsReq("POST", url, []byte(JsonDSL)) if err != nil { return @@ -670,11 +671,17 @@ } -//鏌ヨ鏃堕棿娈垫暟鎹� -func GetPeriodInfos(serverIp string, serverPort string, startTime string, endTime string, indexName string, shards string) ([]*protomsg.Esinfo, error) { - var capdbinfo []*protomsg.Esinfo +//鏌ヨ鏃堕棿娈垫暟鎹� *缂撳瓨* +func GetPeriodInfos(serverIp string, serverPort string, startTime string, endTime string, indexName string, shards string, targetType string) ([]*protomsg.MultiFeaCache, error) { + var capdbinfo []*protomsg.MultiFeaCache url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local" - + var source []string + switch targetType { + case "face": + source = []string{"id","targetInfo.feature","analyServerId","cameraId"} + case "track": + source = []string{"id","targetInfo.feature","analyServerId","cameraId","targetInfo.attachTarget.feature","linkTagInfo.targetInfo.feature","linkTagInfo.targetInfo.attachTarget.feature","linkTagInfo.cameraId"} + } JsonDSL := ` { "query": { @@ -682,7 +689,7 @@ "filter": [ { "term": { - "targetInfo.targetType.raw": "face" + "targetInfo.targetType.raw": "`+targetType+`" } }, { @@ -697,15 +704,12 @@ } }, "size": 1000000, - "_source": [ - "id", - "targetInfo.feature", - "analyServerId" - ] + "_source": ["`+strings.Replace(strings.Trim(fmt.Sprint(source), "[]"), " ", "\",\"", -1)+`"] } ` //logger.Debug(url) //logger.Debug(JsonDSL) + //fmt.Println(JsonDSL) buf, err := EsReq("POST", url, []byte(JsonDSL)) if err != nil { return capdbinfo, errors.New("http request dbtablename info is err!") @@ -716,19 +720,26 @@ if err != nil { return capdbinfo, err } - + //fmt.Println(sources) // 杩斿洖鎵�鏈夋煡璇㈢殑鏁版嵁 capdbinfos := Parsesources(sources) return capdbinfos, nil - } -// 鏌ヨ搴曞簱浜哄憳淇℃伅 -func GetOceanFeatures(serverIp string, serverPort string, queryIndexNum int, queryNums int, indexName string, shards string) ([]*protomsg.Esinfo, error) { - var dbinfos []*protomsg.Esinfo +// 鏌ヨ搴曞簱浜哄憳淇℃伅*缂撳瓨* +func GetOceanFeatures(serverIp string, serverPort string, queryIndexNum int, queryNums int, indexName string, shards string, targetType string) ([]*protomsg.MultiFeaCache, error) { + var dbinfos []*protomsg.MultiFeaCache point := strconv.Itoa(queryIndexNum) number := strconv.Itoa(queryNums) JsonDSL := "" + var source []string + switch targetType { + case "face": + source = []string{"id","targetInfo.feature","analyServerId"} + case "track": + source = []string{"id","targetInfo.feature","analyServerId","targetInfo.attachTarget.feature","linkTagInfo.targetInfo.feature","linkTagInfo.targetInfo.attachTarget.feature"} + } + url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local" JsonDSL = ` { "from": ` + point + `, @@ -737,18 +748,14 @@ "filter": [ { "term": { - "targetInfo.targetType.raw": "face" + "targetInfo.targetType.raw": "`+targetType+`" } } ] } }, "size":` + number + `, - "_source": [ - "id", - "targetInfo.feature", - "analyServerId" - ] + "_source": ["`+strings.Replace(strings.Trim(fmt.Sprint(source), "[]"), " ", "\",\"", -1)+`"] }` buf, err := EsReq("POST", url, []byte(JsonDSL)) -- Gitblit v1.8.0