liuxiaolong
2019-11-20 b554ba0fc6f2c02f461f2b0d9640d04b91fac6d5
add sdkCompare funcs
1个文件已修改
142 ■■■■■ 已修改文件
EsApi.go 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
}