未验证 提交 141835a7 编写于 作者: X Xiaohai Xu 提交者: GitHub

Add SDK support for IVFSQ8NR (#2821)

* add c++ sdk
Signed-off-by: Nsahuang <xiaohai.xu@zilliz.com>

* fix clang
Signed-off-by: Nsahuang <xiaohai.xu@zilliz.com>
上级 2c3b3a5c
......@@ -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
......
......@@ -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);
......
......@@ -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: {
......
......@@ -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;
......
......@@ -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";
}
......
......@@ -39,6 +39,7 @@ enum class IndexType {
SPTAGBKT = 8,
HNSW = 11,
ANNOY = 12,
IVFSQ8NR = 13,
};
enum class MetricType {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册