Expand description
§ringDB
A vector database specialised for ring queries in high-dimensional spaces.
Instead of nearest-neighbour search, ringDB retrieves all vectors whose
Euclidean distance to a query lies within a specified interval [d-λ, d+λ].
§Quick start
use ringdb::{RingDb, RingDbConfig, RingQuery};
let mut db = RingDb::new(RingDbConfig::new(4)).unwrap();
db.add_vector(&[1.0f32, 0.0, 0.0, 0.0], ()).unwrap();
db.add_vector(&[0.0, 5.0, 0.0, 0.0], ()).unwrap();
let db = db.build().unwrap();
let result = db.query(&RingQuery { query: &[0.0f32; 4], d: 1.0, lambda: 0.1 }).unwrap();
// result.ids contains IDs of all vectors at distance ≈ 1.0 from originRe-exports§
pub use payload::Payload;
Modules§
Structs§
- Disk
Query - A disk query: find all vectors whose Euclidean distance to
queryis at mostd_max(i.e. the full disk/ball of radiusd_max). - Query
Result - Result of a ring query.
- Range
Query - A range query: find all vectors whose Euclidean distance to
querylies within[d_min, d_max]. - RingDb
- Builder for a ring-query vector database.
- Ring
DbConfig - Configuration for a
RingDbinstance. - Ring
Query - A ring query: find all vectors whose Euclidean distance to
querylies within[d - lambda, d + lambda]. - Sealed
Ring Db - Sealed (immutable) ring-query database.
Enums§
- Backend
Preference - Which compute backend to use for ring queries.
- Ring
DbError - All errors that ringdb can produce.
Derive Macros§
- Payload
- Derive macro that implements [
ringdb::Payload] for a struct.