Expand description
Vector partitioning for data isolation and multi-tenancy
This module provides partitioning capabilities to organize vectors into isolated groups based on metadata. This is essential for:
- Multi-tenant applications (isolate by customer/org)
- Data organization (group by category, date, etc.)
- Performance optimization (smaller search spaces)
- Access control (restrict queries to specific partitions)
§Features
- Automatic partitioning: Route vectors based on metadata
- Partition isolation: Each partition has its own storage
- Cross-partition queries: Optional queries across partitions
- Partition statistics: Monitor size and performance per partition
- Dynamic creation: Partitions created on-demand
§Example
use vecstore::partitioning::{PartitionedStore, PartitionConfig};
let config = PartitionConfig {
partition_field: "tenant_id".to_string(),
auto_create: true,
};
let mut store = PartitionedStore::new("data", config)?;
// Insert with partition key
store.insert("doc1", vec![0.1, 0.2], metadata, "tenant_123")?;
// Query within partition
let results = store.query_partition("tenant_123", query)?;Structs§
- Partition
Config - Partition configuration
- Partition
Info - Partition metadata and statistics
- Partition
Stats - Partition statistics
- Partitioned
Store - Partitioned vector store