Expand description
OpenData Vector Database
A vector database built on SlateDB with SPANN-style indexing for efficient approximate nearest neighbor search.
§Example
let config = Config {
dimensions: 384,
distance_metric: DistanceMetric::L2,
flush_interval: Duration::from_secs(60),
..Default::default()
};
let db = VectorDb::open(config).await?;
let vectors = vec![
Vector::builder("product-001", vec![0.1; 384])
.attribute("category", "electronics")
.attribute("price", 99i64)
.build(),
];
db.write(vectors).await?;
db.flush().await?;Re-exports§
pub use db::VectorDb;pub use db::VectorDbRead;pub use model::Attribute;pub use model::AttributeValue;pub use model::Config;pub use model::DistanceMetric;pub use model::FieldSelection;pub use model::FieldType;pub use model::Filter;pub use model::MetadataFieldSpec;pub use model::Query;pub use model::ReaderConfig;pub use model::SearchResult;pub use model::Vector;pub use model::VectorBuilder;pub use reader::VectorDbReader;
Modules§
- db
- Vector database implementation with atomic flush semantics.
- delta
- In-memory delta for buffering vector writes before flush.
- distance
- Distance computation functions for vector similarity.
- flusher
- Flusher implementation for VectorDb.
- hnsw
- HNSW graph implementations for centroid search.
- model
- Public API types for the vector database (RFC 0002).
- reader
- Read-only client for the vector database.
- serde
- Serialization/deserialization for vector database storage.
Enums§
- Error
- Error type for OpenData Vector operations.
Type Aliases§
- Result
- Result type alias for OpenData Vector operations.