From b0c5bb2548858668cb8cf191d6ee8e0159d272d9 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期三, 02 九月 2020 10:39:19 +0800
Subject: [PATCH] add group outside sort
---
EsClient.go | 12 +++++++++---
EsApi.go | 31 +++++++++++++++++++++++++++++--
2 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/EsApi.go b/EsApi.go
index 73ee338..2eb29eb 100644
--- a/EsApi.go
+++ b/EsApi.go
@@ -364,7 +364,7 @@
return faceSource, nil
}
-func GetFaceIdDeduplication(startTime string, endTime string, serverIp string, serverPort string, indexName string) (ids []string, err error) {
+func GetFaceIdDeduplication(startTime string, endTime string, serverIp string, serverPort string, indexName string) (ids []map[string]interface{}, err error) {
var requestUrl = "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
var requestBody = `{
"query": {
@@ -400,7 +400,27 @@
}
],
"size": 10000000
- }
+ },
+ "aggs": {
+ "top_attention_hits": {
+ "top_hits": {
+ "size": 1,
+ "sort": [
+ {
+ "picDate": {
+ "order": "desc"
+ }
+ }
+ ],
+ "_source": {
+ "includes": [
+ "picDate"
+ ]
+ }
+ }
+ }
+ }
+ }
}
}
}`
@@ -414,6 +434,13 @@
if err1 != nil {
return nil, err1
}
+ if len(ids) > 0 {
+ mapsSort := MapsSort{}
+ mapsSort.Key = "lastTime"
+ mapsSort.MapList = ids
+ sort.Sort(&mapsSort)
+ return mapsSort.MapList, nil
+ }
return ids, nil
}
diff --git a/EsClient.go b/EsClient.go
index 70c3073..3e6fd24 100644
--- a/EsClient.go
+++ b/EsClient.go
@@ -582,7 +582,7 @@
return allSource, nil
}
-func SourceDeduplication(buf [] byte) ([]string,error) {
+func SourceDeduplication(buf [] byte) ([]map[string]interface{},error) {
var info interface{}
json.Unmarshal(buf, &info)
out, ok := info.(map[string]interface{})
@@ -598,9 +598,15 @@
if len(buckets) == 0 {
return nil, nil
}
- faceId := make([]string,0)
+ faceId := make([]map[string]interface{},0)
for _, in := range buckets {
- faceId = append(faceId, in.(map[string]interface{})["key"].(map[string]interface{})["faceId"].(string))
+ tmpInfo := make(map[string]interface{})
+ topAttentionHits := in.(map[string]interface{})["top_attention_hits"].(map[string]interface{})
+ middleHits := topAttentionHits["hits"].(map[string]interface{})
+ finalHits := middleHits["hits"].([]interface{})
+ tmpInfo["faceId"] = in.(map[string]interface{})["key"].(map[string]interface{})["faceId"].(string)
+ tmpInfo["lastTime"] = finalHits[0].(map[string]interface{})["_source"].(map[string]interface{})["picDate"].(string)
+ faceId = append(faceId, tmpInfo)
}
return faceId,nil
}
--
Gitblit v1.8.0