Indexing Quick Start

The fastest way to use custom indexing in DBX.

1. Creating a Bloom Filter Index

use dbx_core::Database;

let db = Database::open("./db")?;

// Create a Bloom Filter index
db.create_index("users", "email")?;

2. Fast Lookup with Indices

// Lookup without index (Slower)
let value = db.get("users", b"user:1")?;

// Lookup with index (Fast)
db.create_index("users", "id")?;
let value = db.get("users", b"user:1")?;  // Utilizes Bloom Filter

3. Rebuilding Indices

// Rebuild index (after major data changes)
db.rebuild_index("users")?;

4. Checking Index Statistics

// Query index info
let stats = db.index_stats("users")?;
println!("Index size: {} bytes", stats.size);
println!("False positive rate: {:.4}%", stats.fpr * 100.0);

5. Complete Example

use dbx_core::Database;

fn main() -> dbx_core::DbxResult<()> {
    let db = Database::open("./indexed_db")?;
    
    // Insert data
    for i in 0..10000 {
        let key = format!("user:{}", i).into_bytes();
        let value = format!("User {}", i).into_bytes();
        db.insert("users", &key, &value)?;
    }
    
    // Create Bloom Filter index
    db.create_index("users", "id")?;
    
    println!("✓ Index created for 10,000 users");
    
    // Rapid lookup
    let value = db.get("users", b"user:5000")?;
    println!("✓ Fast lookup: {:?}", value);
    
    Ok(())
}

Next Steps


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.