diff --git a/cpp/src/wrapper/knowhere/vec_index.cpp b/cpp/src/wrapper/knowhere/vec_index.cpp index 1473afbc2327d86e0155ed708de571ff61c05f31..0337f0ab67fc9417ed5707c66e65f435228e02e1 100644 --- a/cpp/src/wrapper/knowhere/vec_index.cpp +++ b/cpp/src/wrapper/knowhere/vec_index.cpp @@ -191,7 +191,9 @@ server::KnowhereError write_index(VecIndexPtr index, const std::string &location // TODO(linxj): redo here. void AutoGenParams(const IndexType &type, const long &size, zilliz::knowhere::Config &cfg) { - if (!cfg.contains("nlist")) { cfg["nlist"] = int(size / 1000000.0 * 16384); } + auto nlist = cfg.get_with_default("nlist", 0); + if (int(size/1000000.0) * nlist == 0) { cfg["nlist"] = int(size / 1000000.0 * 16384); } + if (!cfg.contains("gpu_id")) { cfg["gpu_id"] = int(0); } if (!cfg.contains("metric_type")) { cfg["metric_type"] = "L2"; }