From 1dad3ddaadd4efc32ce76bda87ee44ac3bdd16e1 Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Fri, 11 Sep 2020 18:39:18 +0800 Subject: [PATCH] Fix bug for the logic of search Signed-off-by: cai.zhang --- proxy/src/message_client/ClientV2.cpp | 28 +++++++++---------- proxy/src/message_client/ClientV2.h | 2 +- .../src/server/delivery/request/SearchReq.cpp | 2 +- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/proxy/src/message_client/ClientV2.cpp b/proxy/src/message_client/ClientV2.cpp index c1924022c6..dab00da4a9 100644 --- a/proxy/src/message_client/ClientV2.cpp +++ b/proxy/src/message_client/ClientV2.cpp @@ -54,17 +54,17 @@ milvus::grpc::QueryResult Aggregation(std::vector all_scores; std::vector all_distance; std::vector all_kv_pairs; - std::vector index(length * results[0]->scores_size()); + std::vector index(length * results[0]->distances_size()); - for (int n = 0; n < length * results[0]->scores_size(); ++n) { + for (int n = 0; n < length * results[0]->distances_size(); ++n) { index[n] = n; } for (int i = 0; i < length; i++) { - for (int j = 0; j < results[i]->scores_size(); j++) { - all_scores.push_back(results[i]->scores()[j]); + for (int j = 0; j < results[i]->distances_size(); j++) { +// all_scores.push_back(results[i]->scores()[j]); all_distance.push_back(results[i]->distances()[j]); - all_kv_pairs.push_back(results[i]->extra_params()[j]); +// all_kv_pairs.push_back(results[i]->extra_params()[j]); } } @@ -89,22 +89,20 @@ milvus::grpc::QueryResult Aggregation(std::vectorCopyFrom(results[0]->entities()); result.set_row_num(results[0]->row_num()); - for (int m = 0; m < results[0]->scores_size(); ++m) { - result.add_scores(all_scores[index[m]]); + for (int m = 0; m < results[0]->distances_size(); ++m) { +// result.add_scores(all_scores[index[m]]); result.add_distances(all_distance[m]); - result.add_extra_params(); - result.mutable_extra_params(m)->CopyFrom(all_kv_pairs[index[m]]); +// result.add_extra_params(); +// result.mutable_extra_params(m)->CopyFrom(all_kv_pairs[index[m]]); } - result.set_query_id(results[0]->query_id()); - result.set_client_id(results[0]->client_id()); +// result.set_query_id(results[0]->query_id()); +// result.set_client_id(results[0]->client_id()); return result; } -Status MsgClientV2::GetQueryResult(int64_t query_id, milvus::grpc::QueryResult &result) { - - std::vector> results; +Status MsgClientV2::GetQueryResult(int64_t query_id, milvus::grpc::QueryResult* result) { int64_t query_node_num = GetQueryNodeNum(); @@ -126,7 +124,7 @@ Status MsgClientV2::GetQueryResult(int64_t query_id, milvus::grpc::QueryResult & return Status(DB_ERROR, "can't parse message which from pulsar!"); } } - result = Aggregation(total_results[query_id]); + *result = Aggregation(total_results[query_id]); return Status::OK(); } diff --git a/proxy/src/message_client/ClientV2.h b/proxy/src/message_client/ClientV2.h index 3af1e798f4..67d8184241 100644 --- a/proxy/src/message_client/ClientV2.h +++ b/proxy/src/message_client/ClientV2.h @@ -31,7 +31,7 @@ class MsgClientV2 { // Status SendQueryMessage(const milvus::grpc::SearchParam &request, uint64_t timestamp, int64_t &query_id); - Status GetQueryResult(int64_t query_id, milvus::grpc::QueryResult &result); + Status GetQueryResult(int64_t query_id, milvus::grpc::QueryResult* result); private: int64_t GetUniqueQId() { diff --git a/proxy/src/server/delivery/request/SearchReq.cpp b/proxy/src/server/delivery/request/SearchReq.cpp index 289776569d..d5afd298f8 100644 --- a/proxy/src/server/delivery/request/SearchReq.cpp +++ b/proxy/src/server/delivery/request/SearchReq.cpp @@ -58,7 +58,7 @@ SearchReq::OnExecute() { return send_status; } - Status status = client->GetQueryResult(query_id, *result_); + Status status = client->GetQueryResult(query_id, result_); return status; }