Current state: ["Approved"]
...
This API returns all unsorted results with distance falling in the specified range scope.
PROTO | virtual DatasetPtr QueryByRange(const DatasetPtr& dataset, const Config& config, const faiss::BitsetView bitset) |
INPUT | Dataset { knowhere::meta::TENSOR: - // query data knowhere::meta::ROWS: - // rows of queries knowhere::meta::DIM: - // dimension } Config { knowhere::meta::RADIUS: - knowhere::meta::RANGE_FILTER: - } |
OUTPUT | Dataset { knowhere::meta::IDS: - // result IDs with length LIMS[nq] knowhere::meta::DISTANCE: - // result DISTANCES with length LIMS[nq] knowhere::meta::LIMS: - // result offset prefix sum with length nq + 1 } |
...
This API does range search for no-index dataset, it returns all unsorted results with distance "better than radius" (for IP: > radius; for others: < radius).
PROTO | static DatasetPtr RangeSearch(const DatasetPtr base_dataset, const DatasetPtr query_dataset, const Config& config, const faiss::BitsetView bitset); |
INPUT | Dataset { knowhere::meta::TENSOR: - // base data knowhere::meta::ROWS: - // rows of base data knowhere::meta::DIM: - // dimension } Dataset { knowhere::meta::TENSOR: - // query data knowhere::meta::ROWS: - // rows of queries knowhere::meta::DIM: - // dimension } Config { knowhere::meta::RADIUS: - knowhere::meta::RANGE_FILTER: - } |
OUTPUT | Dataset { knowhere::meta::IDS: - // result IDs with length LIMS[nq] knowhere::meta::DISTANCE: - // result DISTANCES with length LIMS[nq] knowhere::meta::LIMS: - // result offset prefix sum with length nq + 1 } |
...
- pass radius parameters (radius _low_bound / radiusrange_high_boundfilter) to knowhere
- get all unsorted range search result from knowhere
- for each NQ's results, do heap-sort
- return result Dataset with TOPK results
...