sunty
2019-12-09 845f643c1aaaa37a53219b6f11b77a1b333cf619
EsApi.go
@@ -72,6 +72,7 @@
   if err != nil {
      return "", err
   }
   feature := sources[0]["targetInfo"].([]interface{})[0].(map[string]interface{})["feature"].(string)
   return feature, nil
}
@@ -176,7 +177,7 @@
   return statu
}
//获取当前节点抓拍库所有人员ID
//获取当前节点抓拍库所有人员ID*缓存*
func GetAllLocalVideopersonsId(compareArgs protomsg.CompareArgs, indexName string, serverIp string, serverPort string, alarmLevelTypes string) (capturetable []string) {
   queryStr := ""
   queryBody := compareArgs.InputValue
@@ -635,22 +636,22 @@
}
/****************************************以下为sdkCompare比对缓存使用方法*********************************************/
//获取查询总数
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))