提交 93f2ce45 编写于 作者: Y yudong.cai

#331 add exception handle when search fail

上级 8e4c5833
......@@ -133,9 +133,11 @@ GPUIVF::search_impl(int64_t n, const float* data, int64_t k, float* distances, i
device_index->nprobe = search_cfg->nprobe;
// assert(device_index->getNumProbes() == search_cfg->nprobe);
{
try {
ResScope rs(res_, gpu_id_);
device_index->search(n, (float*)data, k, distances, labels);
} catch (faiss::FaissException& e) {
KNOWHERE_THROW_MSG(e.what());
}
} else {
KNOWHERE_THROW_MSG("Not a GpuIndexIVF type.");
......
......@@ -212,7 +212,13 @@ XSearchTask::Execute() {
ResMgrInst::GetInstance()->GetResource(path().Last())->type() == ResourceType::CPU) {
hybrid = true;
}
index_engine_->Search(nq, vectors, topk, nprobe, output_distance.data(), output_ids.data(), hybrid);
Status s =
index_engine_->Search(nq, vectors, topk, nprobe, output_distance.data(), output_ids.data(), hybrid);
if (!s.ok()) {
search_job->GetStatus() = s;
search_job->SearchDone(index_id_);
return;
}
double span = rc.RecordSection(hdr + ", do search");
// search_job->AccumSearchCost(span);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册