Skip to main content

Module partitioning

Module partitioning 

Source
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§

PartitionConfig
Partition configuration
PartitionInfo
Partition metadata and statistics
PartitionStats
Partition statistics
PartitionedStore
Partitioned vector store