diff --git a/cpp/src/db/ExecutionEngineImpl.cpp b/cpp/src/db/ExecutionEngineImpl.cpp index 85372d619d..bba29fc9a0 100644 --- a/cpp/src/db/ExecutionEngineImpl.cpp +++ b/cpp/src/db/ExecutionEngineImpl.cpp @@ -183,9 +183,9 @@ VecIndexPtr ExecutionEngineImpl::Load(const std::string &location) { reader(bin, bin_length); rp += bin_length; - auto xx = std::make_shared(); - xx.reset(bin); - load_data_list.Append(std::string(meta, meta_length), xx, bin_length); + auto binptr = std::make_shared(); + binptr.reset(bin); + load_data_list.Append(std::string(meta, meta_length), binptr, bin_length); } auto index_type = IndexType::INVALID; @@ -206,6 +206,10 @@ VecIndexPtr ExecutionEngineImpl::Load(const std::string &location) { index_type = IndexType::SPTAG_KDT_RNT_CPU; break; } + default: { + ENGINE_LOG_ERROR << "wrong index_type"; + return nullptr; + } } return LoadVecIndex(index_type, load_data_list); diff --git a/cpp/src/wrapper/knowhere/vec_index.cpp b/cpp/src/wrapper/knowhere/vec_index.cpp index b71eb0f4b7..17aa428613 100644 --- a/cpp/src/wrapper/knowhere/vec_index.cpp +++ b/cpp/src/wrapper/knowhere/vec_index.cpp @@ -32,15 +32,22 @@ VecIndexPtr GetVecIndexFactory(const IndexType &type) { index = std::make_shared(0); break; } + case IndexType::FAISS_IVFPQ_CPU: { + index = std::make_shared(); + break; + } + case IndexType::FAISS_IVFPQ_GPU: { + index = std::make_shared(0); + break; + } case IndexType::SPTAG_KDT_RNT_CPU: { index = std::make_shared(); break; } - //// TODO(linxj): Support NSG - //case IndexType ::NSG: { - // index = std::make_shared(); - // break; - //} + //case IndexType::NSG: { // TODO(linxj): bug. + // index = std::make_shared(); + // break; + //} default: { return nullptr; } diff --git a/cpp/src/wrapper/knowhere/vec_index.h b/cpp/src/wrapper/knowhere/vec_index.h index 8e471b5213..76c69537b5 100644 --- a/cpp/src/wrapper/knowhere/vec_index.h +++ b/cpp/src/wrapper/knowhere/vec_index.h @@ -54,10 +54,12 @@ using VecIndexPtr = std::shared_ptr; enum class IndexType { INVALID = 0, FAISS_IDMAP = 1, - FAISS_IVFFLAT_GPU, FAISS_IVFFLAT_CPU, + FAISS_IVFFLAT_GPU, + FAISS_IVFPQ_CPU, + FAISS_IVFPQ_GPU, SPTAG_KDT_RNT_CPU, - NSG, + //NSG, }; extern VecIndexPtr GetVecIndexFactory(const IndexType &type);