liuxiaolong
2019-11-20 b554ba0fc6f2c02f461f2b0d9640d04b91fac6d5
EsApi.go
@@ -791,3 +791,145 @@
   return sources,nil
}
/****************************************以下为sdkCompare比对缓存使用方法*********************************************/
//获取查询总数
func GetTotal(serverIp string, serverPort string,indexName string,shards string) (total int) {
   JsonDSL := `{"query":{"bool":{"must":[{"match_all":{}}]}},"size":0}`
   url := "http://" + serverIp + ":" + serverPort+ "/" + indexName + "/_search"
   if indexName == "videopersons" {
      url = "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local"
   }
   buf, err := EsReq("POST", url, []byte(JsonDSL))
   if err != nil {
      return
   }
   var info interface{}
   json.Unmarshal(buf, &info)
   out, ok := info.(map[string]interface{})
   if !ok {
      return
   }
   middle, ok := out["hits"].(map[string]interface{})
   if !ok {
      return
   }
   total = int(middle["total"].(float64))
   return total
}
//查询时间段数据
func GetPeriodInfos(serverIp string, serverPort string,startTime string, endTime string, indexName string,shards string) ([]*protomsg.Esinfo, error) {
   var dbinfos []*protomsg.Esinfo
   url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
   if indexName == "videopersons" {
      url = "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local"
   }
   JsonDSL := `
    {
        "query": {
            "bool": {
                "filter": [{
                    "range": {
                        "picDate": {
                            "gte": "` + startTime + `",
                            "lt": "` + endTime + `"
                        }
                    }
                }]
            }
        },
        "size": 1000000,
        "_source": [
         "id",
         "tableId",
         "faceFeature",
       "analyServerId"
        ]
    }
    `
   //logger.Debug(url)
   //logger.Debug(JsonDSL)
   buf, err := EsReq("POST", url, []byte(JsonDSL))
   if err != nil {
      return dbinfos, errors.New("http request dbtablename info is err!")
   }
   // 返回 _source 数组
   sources, err := Sourcelist(buf)
   if err != nil {
      return dbinfos, err
   }
   // 返回所有查询的数据
   dbpersoninfos := Parsesources(sources)
   return dbpersoninfos, nil
}
// 查询底库人员信息
func GetOceanFeatures(serverIp string, serverPort string,queryIndexNum int, queryNums int, indexName string, shards string) ([]*protomsg.Esinfo, error) {
   var dbinfos []*protomsg.Esinfo
   point := strconv.Itoa(queryIndexNum)
   number := strconv.Itoa(queryNums)
   JsonDSL := ""
   url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
   if indexName == "videopersons" {
      url = "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local"
      JsonDSL = `  {
                    "from": ` + point + `,
                    "query": {
                        "match_all": {}
                    },
                     "size":` + number + `,
                     "_source": [
                       "id",
                       "tableId",
                       "faceFeature",
                  "analyServerId"
                       ]
                    }`
   } else { //查底库有效人员
      JsonDSL = `  {
                    "from": ` + point + `,
                    "query": {
                        "bool": {
                           "filter":[{
                                "term":{
                                    "enable":1
                                }
                            },{
                                "term":{
                                    "isDelete":0
                                }
                            }]
                        }
                    },
                     "size":` + number + `,
                     "_source": [
                       "id",
                       "tableId",
                       "faceFeature"
                       ]
                    }`
   }
   buf, err := EsReq("POST", url, []byte(JsonDSL))
   if err != nil {
      return dbinfos, errors.New("http request dbtablename info is err!")
   }
   // 返回 _source 数组
   sources, err := Sourcelist(buf)
   if err != nil {
      return dbinfos, err
   }
   // 返回所有查询的数据
   dbpersoninfos := Parsesources(sources)
   return dbpersoninfos, nil
}