From b554ba0fc6f2c02f461f2b0d9640d04b91fac6d5 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期三, 20 十一月 2019 11:45:46 +0800 Subject: [PATCH] add sdkCompare funcs --- EsApi.go | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/EsApi.go b/EsApi.go index 4535e47..ca1480d 100644 --- a/EsApi.go +++ b/EsApi.go @@ -791,3 +791,145 @@ return sources,nil } + + +/****************************************浠ヤ笅涓簊dkCompare姣斿缂撳瓨浣跨敤鏂规硶*********************************************/ +//鑾峰彇鏌ヨ鎬绘暟 +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 +} -- Gitblit v1.8.0