Current state: ["Under Discussion"]
...
| IP | L2 | HAMMING | JACCARD | TANIMOTO | SUBSTRUCTURE | SUPERSTRUCTURE |
---|
BIN_IDMAP |
|
| | | |
|
|
BIN_IVF_FLAT |
|
| | | |
|
|
IDMAP | | |
|
|
|
|
|
IVF_FLAT | | |
|
|
|
|
|
IVF_PQ | | |
|
|
|
|
|
IVF_SQ8 | | |
|
|
|
|
|
HNSW | | |
|
|
|
|
|
ANNOY |
|
|
|
|
|
|
|
DISKANN |
| |
|
|
|
|
|
If call range search API with unsupported index types or unsupported metric types, knowhere will throw out exception.
...
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 } |
...