From 015fe06fc4818ee042905d154d0bc1af63ffeaa7 Mon Sep 17 00:00:00 2001 From: "xj.lin" Date: Tue, 9 Jul 2019 04:43:27 +0800 Subject: [PATCH] update... Former-commit-id: 42b56218b03ac7b8efb479e776ce601e12a45e6c --- cpp/src/db/ExecutionEngineImpl.cpp | 10 +++++++--- cpp/src/wrapper/knowhere/vec_index.cpp | 17 ++++++++++++----- cpp/src/wrapper/knowhere/vec_index.h | 6 ++++-- 3 files changed, 23 insertions(+), 10 deletions(-) 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);