sunty
2020-09-02 b0c5bb2548858668cb8cf191d6ee8e0159d272d9
add group outside sort
2个文件已修改
43 ■■■■ 已修改文件
EsApi.go 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EsClient.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
}
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
}