Unverified Commit d160b279 authored by groot's avatar groot Committed by GitHub
Browse files

remove SearchByID (#2341)



* fix #2264

Signed-off-by: default avataryhmo <yihua.mo@zilliz.com>

* typo

Signed-off-by: default avataryhmo <yihua.mo@zilliz.com>

* fix ut

Signed-off-by: default avataryhmo <yihua.mo@zilliz.com>

* typo

Signed-off-by: default avataryhmo <yihua.mo@zilliz.com>

* Remove unnecessary memcpy

Signed-off-by: default avataryhmo <yihua.mo@zilliz.com>

* remove SearchByID from C++SDK

Signed-off-by: default avataryhmo <yihua.mo@zilliz.com>
parent 244d0e34
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ constexpr int64_t TOP_K = 10;
constexpr int64_t NPROBE = 32;
constexpr int64_t SEARCH_TARGET = BATCH_ENTITY_COUNT / 2;  // change this value, result is different
constexpr int64_t ADD_ENTITY_LOOP = 5;
constexpr milvus::IndexType INDEX_TYPE = milvus::IndexType::IVFSQ8;
constexpr milvus::IndexType INDEX_TYPE = milvus::IndexType::IVFFLAT;
constexpr int32_t NLIST = 16384;

void
@@ -195,15 +195,19 @@ ClientTest::SearchEntitiesByID(const std::string& collection_name, int64_t topk,
        id_array.push_back(pair.first);
    }

    std::vector<milvus::Entity> entities;
    milvus::Status stat = conn_->GetEntityByID(collection_name, id_array, entities);
    std::cout << "GetEntityByID function call status: " << stat.message() << std::endl;

    JSON json_params = {{"nprobe", nprobe}};
    milvus_sdk::TimeRecorder rc("SearchByID");
    milvus::Status stat = conn_->SearchByID(collection_name,
    milvus_sdk::TimeRecorder rc("Search");
    stat = conn_->Search(collection_name,
                         partition_tags,
                                            id_array,
                         entities,
                         topk,
                         json_params.dump(),
                         topk_query_result);
    std::cout << "SearchByID function call status: " << stat.message() << std::endl;
    std::cout << "Search function call status: " << stat.message() << std::endl;

    if (topk_query_result.size() != id_array.size()) {
        std::cout << "ERROR! wrong result for query by id" << std::endl;
+0 −29
Original line number Diff line number Diff line
@@ -370,35 +370,6 @@ ClientProxy::Search(const std::string& collection_name, const std::vector<std::s
    }
}

Status
ClientProxy::SearchByID(const std::string& collection_name, const PartitionTagList& partition_tag_array,
                        const std::vector<int64_t>& id_array, int64_t topk, const std::string& extra_params,
                        TopKQueryResult& topk_query_result) {
    try {
        // step 1: convert vectors data
        ::milvus::grpc::SearchByIDParam search_param;
        ConstructSearchParam(collection_name, partition_tag_array, topk, extra_params, search_param);

        for (auto& id : id_array) {
            search_param.add_id_array(id);
        }

        // step 2: search vectors
        ::milvus::grpc::TopKQueryResult grpc_result;
        Status status = client_ptr_->SearchByID(search_param, grpc_result);
        if (grpc_result.row_num() == 0) {
            return status;
        }

        // step 3: convert result array
        ConstructTopkResult(grpc_result, topk_query_result);

        return status;
    } catch (std::exception& ex) {
        return Status(StatusCode::UnknownError, "Failed to search entities: " + std::string(ex.what()));
    }
}

Status
ClientProxy::GetCollectionInfo(const std::string& collection_name, CollectionParam& collection_param) {
    try {
+0 −5
Original line number Diff line number Diff line
@@ -82,11 +82,6 @@ class ClientProxy : public Connection {
           const std::vector<Entity>& entity_array, int64_t topk,
           const std::string& extra_params, TopKQueryResult& topk_query_result) override;

    Status
    SearchByID(const std::string& collection_name, const PartitionTagList& partition_tag_array,
               const std::vector<int64_t>& id_array, int64_t topk,
               const std::string& extra_params, TopKQueryResult& topk_query_result) override;

    Status
    GetCollectionInfo(const std::string& collection_name, CollectionParam& collection_param) override;

+0 −19
Original line number Diff line number Diff line
@@ -178,25 +178,6 @@ GrpcClient::Search(const ::milvus::grpc::SearchParam& search_param,
    return Status::OK();
}

Status
GrpcClient::SearchByID(const grpc::SearchByIDParam& search_param, ::milvus::grpc::TopKQueryResult& topk_query_result) {
    ::milvus::grpc::TopKQueryResult query_result;
    ClientContext context;
    ::grpc::Status grpc_status = stub_->SearchByID(&context, search_param, &topk_query_result);

    if (!grpc_status.ok()) {
        std::cerr << "SearchByID rpc failed!" << std::endl;
        std::cerr << grpc_status.error_message() << std::endl;
        return Status(StatusCode::RPCFailed, grpc_status.error_message());
    }
    if (topk_query_result.status().error_code() != grpc::SUCCESS) {
        std::cerr << topk_query_result.status().reason() << std::endl;
        return Status(StatusCode::ServerFailed, topk_query_result.status().reason());
    }

    return Status::OK();
}

Status
GrpcClient::GetCollectionInfo(const std::string& collection_name, ::milvus::grpc::CollectionSchema& grpc_schema) {
    ClientContext context;
+0 −3
Original line number Diff line number Diff line
@@ -59,9 +59,6 @@ class GrpcClient {
    Status
    Search(const grpc::SearchParam& search_param, ::milvus::grpc::TopKQueryResult& topk_query_result);

    Status
    SearchByID(const grpc::SearchByIDParam& search_param, ::milvus::grpc::TopKQueryResult& topk_query_result);

    Status
    GetCollectionInfo(const std::string& collection_name, grpc::CollectionSchema& grpc_schema);

Loading