From 8490f428b0989d98dca462c7dd7735812a99d0c2 Mon Sep 17 00:00:00 2001 From: Qinren Zhou Date: Mon, 26 Oct 2026 20:13:27 +0800 Subject: [PATCH] fix: forward DiskANN query parameters --- src/binding/params.cc | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/binding/params.cc b/src/binding/params.cc index 0300d6c..1b3ce75 100644 --- a/src/binding/params.cc +++ b/src/binding/params.cc @@ -1560,7 +1560,39 @@ zvec::Result ParseDiskAnnQueryParams( zvec::Status::InvalidArgument("Expected a number for 'listSize'")); } } - return std::make_shared(list_size); + + float radius{0.0f}; + if (obj.Has("radius")) { + if (!obj.Get("radius").IsNumber()) { + return tl::make_unexpected( + zvec::Status::InvalidArgument("Expected a number for 'radius'")); + } + radius = obj.Get("radius").As().FloatValue(); + } + + bool is_linear{false}; + if (obj.Has("isLinear")) { + if (!obj.Get("isLinear").IsBoolean()) { + return tl::make_unexpected( + zvec::Status::InvalidArgument("Expected a boolean for 'isLinear'")); + } + is_linear = obj.Get("isLinear").As().Value(); + } + + bool is_using_refiner{false}; + if (obj.Has("isUsingRefiner")) { + if (!obj.Get("isUsingRefiner").IsBoolean()) { + return tl::make_unexpected(zvec::Status::InvalidArgument( + "Expected a boolean for 'isUsingRefiner'")); + } + is_using_refiner = obj.Get("isUsingRefiner").As().Value(); + } + + auto params = std::make_shared(list_size); + params->set_radius(radius); + params->set_is_linear(is_linear); + params->set_is_using_refiner(is_using_refiner); + return params; }