From 6225f722fd54187b18f6b1a97d044e6918c8ce3b Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期四, 21 十一月 2019 17:46:59 +0800 Subject: [PATCH] fix StatisticsComprehensive --- EsApi.go | 92 ++++++++++++++++++++++++++-------------------- 1 files changed, 52 insertions(+), 40 deletions(-) diff --git a/EsApi.go b/EsApi.go index 6061321..09cd5e7 100644 --- a/EsApi.go +++ b/EsApi.go @@ -294,34 +294,48 @@ } //鍒濆鍖栧疄鏃舵姄鎷� -func InitRealTimeCapture(serverIp string, serverPort string, indexName string, isAlarm bool, quantity int) ([]protomsg.AIOcean, error) { +func InitRealTimeCapture(serverIp string, serverPort string, indexName string, isAlarm string, category string, quantity int) ([]protomsg.AIOcean, error) { var aIOceanInfo []protomsg.AIOcean url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search" - queryStr := "" - if isAlarm == true { - queryStr = `"query":{ - "match_all":{} - },` - } else { - queryStr = `"query":{ + isAlarmStr := "" + if isAlarm != "all" { + isAlarmStr = ` { + "term":{ + "isAlarm":"` + isAlarm + `" + } + }` + + } + + categoryStr := "" + if category != "all" { + categoryStr = ` { + "term":{ + "targetInfo.targetType":"` + category + `" + } + }` + + } + if categoryStr != "" && isAlarmStr != "" { + isAlarmStr = isAlarmStr+"," + } + queryStr := `"query":{ "bool":{ "filter":[ - { - "term":{ - "isAlarm":true - } - } + ` + isAlarmStr + ` + ` + categoryStr + ` ] } },` - } + DSLJson := `{ "size":` + strconv.Itoa(quantity) + `, ` + queryStr + ` "sort":[{"picDate":{"order":"desc"}}], "_source": {"includes":[],"excludes":["*.feature"]} }` + fmt.Println(DSLJson) buf, err := EsReq("POST", url, []byte(DSLJson)) if err != nil { return aIOceanInfo, err @@ -342,18 +356,6 @@ var aIOceanInfo []protomsg.AIOcean url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search" - queryStr := "" - if isAlarm == true { - fmt.Println("continue") - } else { - queryStr = ` - { - "term":{ - "isAlarm":1 - } - } - ` - } DSLJson := `{ "size":20, "query":{ @@ -367,11 +369,15 @@ } } }, - ` + queryStr + ` + { + "term":{ + "isAlarm":` + strconv.FormatBool(isAlarm) + ` + } + } ] } }, - "_source": ["baseInfo", "alarmRules", "sex", "analyServerName", "sdkName", "ageDescription", "content", "id", "cameraAddr", "picMaxUrl", "picDate", "race", "videoUrl", "picSmUrl", "taskName", "personIsHub", "isAlarm", "analyServerIp", "cameraId", "isAckAlarm"] + "_source": {"includes":[],"excludes":["*.feature"]} }` buf, err := EsReq("POST", url, []byte(DSLJson)) @@ -390,25 +396,31 @@ } //缁煎悎缁熻 -func StatisticsComprehensive(serverIp string, serverPort string, indexName string, isAlarm bool) (total int, err error) { - isAlarmStr := "" - if isAlarm == true { - isAlarmStr = `,{"term":{"isAlarm":true}}` - } +func StatisticsComprehensive(serverIp string, serverPort string, indexName string, isAlarm string) (total int, err error) { url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search" + isAlarmStr := "" + if isAlarm != "all" { + isAlarmStr = ` { + "term":{ + "isAlarm":"` + isAlarm + `" + } + }` + + } DSLJson := `{ "size":0, "query":{ "bool":{ - "filter":[{ + "filter":[ + ` + isAlarmStr + ` + { "range":{ "picDate":{ "gte":"now+8h/d" } } } - ` + isAlarmStr + ` ] } } @@ -451,9 +463,9 @@ } }, "aggs":{ - "sdkId_status":{ + "sdkName_status":{ "terms":{ - "field":"taskId" + "field":"sdkName.raw" } } } @@ -472,7 +484,7 @@ if !ok { return nil, errors.New("first hits change error!") } - sdkName_status, ok := middle["sdkId_status"].(map[string]interface{}) + sdkName_status, ok := middle["sdkName_status"].(map[string]interface{}) if !ok { return nil, errors.New("first hits change error!") } @@ -484,9 +496,9 @@ fmt.Println("change to source error!") continue } - sdkId := tmpbuf["key"].(string) + sdkName := tmpbuf["key"].(string) count := int(tmpbuf["doc_count"].(float64)) - source["id"] = sdkId + source["name"] = sdkName source["value"] = count sources = append(sources, source) } -- Gitblit v1.8.0