@@ -266,32 +266,9 @@ VectorDiskAnnIndex<T>::Query(const DatasetPtr dataset,
266
266
search_config[DISK_ANN_PREFIX_PATH] = local_index_path_prefix;
267
267
268
268
auto final = [&] {
269
- auto radius =
270
- GetValueFromConfig<float >(search_info.search_params_ , RADIUS);
271
- if (radius.has_value ()) {
272
- search_config[RADIUS] = radius.value ();
273
- // `range_search_k` is only used as one of the conditions for iterator early termination.
274
- // not gurantee to return exactly `range_search_k` results, which may be more or less.
275
- // set it to -1 will return all results in the range.
276
- search_config[knowhere::meta::RANGE_SEARCH_K] = topk;
277
- auto range_filter = GetValueFromConfig<float >(
278
- search_info.search_params_ , RANGE_FILTER);
279
- if (range_filter.has_value ()) {
280
- search_config[RANGE_FILTER] = range_filter.value ();
281
- CheckRangeSearchParam (search_config[RADIUS],
282
- search_config[RANGE_FILTER],
283
- GetMetricType ());
284
- }
285
-
286
- auto page_retain_order = GetValueFromConfig<bool >(
287
- search_info.search_params_ , PAGE_RETAIN_ORDER);
288
- if (page_retain_order.has_value ()) {
289
- search_config[knowhere::meta::RETAIN_ITERATOR_ORDER] =
290
- page_retain_order.value ();
291
- }
292
-
269
+ if (CheckAndUpdateKnowhereRangeSearchParam (
270
+ search_info, topk, GetMetricType (), search_config)) {
293
271
auto res = index_.RangeSearch (dataset, search_config, bitset);
294
-
295
272
if (!res.has_value ()) {
296
273
PanicInfo (ErrorCode::UnexpectedError,
297
274
fmt::format (" failed to range search: {}: {}" ,
0 commit comments