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