| | |
| | | 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": { |
| | |
| | | } |
| | | ], |
| | | "size": 10000000 |
| | | } |
| | | }, |
| | | "aggs": { |
| | | "top_attention_hits": { |
| | | "top_hits": { |
| | | "size": 1, |
| | | "sort": [ |
| | | { |
| | | "picDate": { |
| | | "order": "desc" |
| | | } |
| | | } |
| | | ], |
| | | "_source": { |
| | | "includes": [ |
| | | "picDate" |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }` |
| | |
| | | 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 |
| | | } |
| | | |
| | |
| | | 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{}) |
| | |
| | | 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 |
| | | } |