Current state: ["Under Discussion"]
...
This API does range search for index, it returns all unsorted results with distance "better than radius" (for IP: > radius; for others: < radius).
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: - // radius for range search } |
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: - // radius for range search } |
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 } |
...
If there is user request to get all range search result in one call, query node team will afford another solution to save range search output of knowhere to S3 directly.
References(optional)
- Knowhere Range Search Algorithm Introduction (https://zilliverse.feishu.cn/docx/doxcn1Kuj75rTiv6fPVburRF37c?from=from_copylink)