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 |
INPUT | Dataset { Config { knowhere::meta::RADIUS: - // radius for range search } |
OUTPUT | Dataset { |
...
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 |
INPUT | Dataset { Dataset { Config { knowhere::meta::RADIUS: - // radius for range search } |
OUTPUT | Dataset { |
...
Compatibility, Deprecation, and Migration Plan(optional)
There This is a new functionality, there is no compatibility issue.
...
- Add new unittest
- Add benchmark using to test range search runtime and recall
- Add benchmark to test range search datasetQPS
There is no public dataset for range search. I have created range search data set based on sift1M and glove200.
You can find them in NAS:
- test/milvus/ann_hdf5/binary/sift-
...
- 4096-
...
- hamming-range.hdf5
- base dataset and query dataset are identical with sift1m
- unified radius =
- test/milvus/ann_hdf5/sift-128-euclidean-range
...
- .hdf5
- base dataset and query dataset are identical with sift1m
- unified radius = 186.0
- result length for each nq is different
- test/milvus/ann_hdf5/
...
- sift-
...
- 128-
...
- euclidean-range-multi.hdf5
- base dataset and query dataset are identical with sift1m
- each nq has different radius setting
- result length for each nq is 100
- test/milvus/ann_hdf5/
...
- glove-
...
- 200-
...
- angular-range.hdf5
- base dataset and query dataset are identical with glove200
- unified radius =
- result length for each nq is different
Segcore
- Add new range search unittest
...