public async Task <JsonResponse> MatchAsync(float[] feat) { if (feat.Length != ServiceOption.FeatureLength) { return(JsonResponse.ArgExceedLimit()); } var bSearch = await Task.FromResult(Search(feat, out var searchResult)); if (!bSearch) { return(JsonResponse.MatchError()); } var dis = searchResult.Select(item => item.Dis); var faceInfos = searchResult.Select(item => m_faceInfo.Get(item.Index)); var ids = faceInfos.Select(item => item.Id); var imagePaths = faceInfos .Select(item => item.ImagePath) .Select(imagePath => $"http://{ServiceOption.PublicIP}/api/FaceRecognition/getImageFile/{Path.GetFileName(imagePath)}"); return(new JsonResponse { Code = 0, Msg = "Success", Data = new { Ids = ids.ToArray(), Dis = dis.ToArray(), ImageUrls = imagePaths.ToArray() } }); }