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