Add SDK support for IVFSQ8NR (#2821)

* add c++ sdk

Signed-off-by: sahuang <xiaohai.xu@zilliz.com>

* fix clang

Signed-off-by: sahuang <xiaohai.xu@zilliz.com>
pull/2835/head^2
Xiaohai Xu 2020-07-12 20:23:25 +08:00 committed by GitHub
parent 2c3b3a5cfa
commit 141835a7c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 5 deletions

View File

@ -53,11 +53,10 @@ enum class EngineType {
};
static std::map<std::string, EngineType> s_map_engine_type = {
{"FLAT", EngineType::FAISS_IDMAP}, {"IVFFLAT", EngineType::FAISS_IVFFLAT}, {"IVFSQ8", EngineType::FAISS_IVFSQ8},
{"RNSG", EngineType::NSG_MIX}, {"IVFSQ8H", EngineType::FAISS_IVFSQ8H}, {"IVFPQ", EngineType::FAISS_PQ},
{"SPTAGKDT", EngineType::SPTAG_KDT}, {"SPTAGBKT", EngineType::SPTAG_BKT}, {"HNSW", EngineType::HNSW},
{"ANNOY", EngineType::ANNOY},
};
{"FLAT", EngineType::FAISS_IDMAP}, {"IVFFLAT", EngineType::FAISS_IVFFLAT}, {"IVFSQ8", EngineType::FAISS_IVFSQ8},
{"RNSG", EngineType::NSG_MIX}, {"IVFSQ8H", EngineType::FAISS_IVFSQ8H}, {"IVFPQ", EngineType::FAISS_PQ},
{"SPTAGKDT", EngineType::SPTAG_KDT}, {"SPTAGBKT", EngineType::SPTAG_BKT}, {"HNSW", EngineType::HNSW},
{"ANNOY", EngineType::ANNOY}, {"IVFSQ8NR", EngineType::FAISS_IVFSQ8NR}};
enum class MetricType {
L2 = 1, // Euclidean Distance

View File

@ -209,6 +209,10 @@ ExecutionEngineImpl::CreatetVecIndex(EngineType type) {
index = vec_index_factory.CreateVecIndex(knowhere::IndexEnum::INDEX_FAISS_IVFSQ8, mode);
break;
}
case EngineType::FAISS_IVFSQ8NR: {
index = vec_index_factory.CreateVecIndex(knowhere::IndexEnum::INDEX_FAISS_IVFSQ8NR, mode);
break;
}
#ifdef MILVUS_GPU_VERSION
case EngineType::FAISS_IVFSQ8H: {
index = vec_index_factory.CreateVecIndex(knowhere::IndexEnum::INDEX_FAISS_IVFSQ8H, mode);

View File

@ -182,6 +182,7 @@ ValidateIndexParams(const milvus::json& index_params, const engine::meta::Collec
}
case (int32_t)engine::EngineType::FAISS_IVFFLAT:
case (int32_t)engine::EngineType::FAISS_IVFSQ8:
case (int32_t)engine::EngineType::FAISS_IVFSQ8NR:
case (int32_t)engine::EngineType::FAISS_IVFSQ8H:
case (int32_t)engine::EngineType::FAISS_BIN_IVFFLAT: {
auto status = CheckParameterRange(index_params, knowhere::IndexParams::nlist, 1, 999999);
@ -279,6 +280,7 @@ ValidateSearchParams(const milvus::json& search_params, const engine::meta::Coll
}
case (int32_t)engine::EngineType::FAISS_IVFFLAT:
case (int32_t)engine::EngineType::FAISS_IVFSQ8:
case (int32_t)engine::EngineType::FAISS_IVFSQ8NR:
case (int32_t)engine::EngineType::FAISS_IVFSQ8H:
case (int32_t)engine::EngineType::FAISS_BIN_IVFFLAT:
case (int32_t)engine::EngineType::FAISS_PQ: {

View File

@ -23,6 +23,7 @@ namespace web {
extern const char* NAME_ENGINE_TYPE_FLAT;
extern const char* NAME_ENGINE_TYPE_IVFFLAT;
extern const char* NAME_ENGINE_TYPE_IVFSQ8;
extern const char* NAME_ENGINE_TYPE_IVFSQ8NR;
extern const char* NAME_ENGINE_TYPE_IVFSQ8H;
extern const char* NAME_ENGINE_TYPE_RNSG;
extern const char* NAME_ENGINE_TYPE_IVFPQ;

View File

@ -115,6 +115,8 @@ Utils::IndexTypeName(const milvus::IndexType& index_type) {
return "HNSW";
case milvus::IndexType::ANNOY:
return "ANNOY";
case milvus::IndexType::IVFSQ8NR:
return "IVFSQ8NR";
default:
return "Unknown index type";
}

View File

@ -39,6 +39,7 @@ enum class IndexType {
SPTAGBKT = 8,
HNSW = 11,
ANNOY = 12,
IVFSQ8NR = 13,
};
enum class MetricType {