Ruvector Filter
Advanced metadata filtering for Ruvector vector search.
ruvector-filter provides a powerful filter expression language for combining vector similarity search with metadata constraints. Supports complex boolean expressions, range queries, and efficient filter evaluation. Part of the Ruvector ecosystem.
Why Ruvector Filter?
- Rich Expressions: Complex boolean filter expressions
- Type-Safe: Strongly typed filter operations
- Optimized: Filter pushdown for efficient evaluation
- Extensible: Custom filter operators
- JSON Compatible: Easy integration with JSON metadata
Features
Core Capabilities
- Comparison Operators:
=,!=,<,>,<=,>= - Boolean Logic:
AND,OR,NOT - Range Queries:
BETWEEN,IN - String Matching:
CONTAINS,STARTS_WITH,ENDS_WITH - Null Handling:
IS NULL,IS NOT NULL
Advanced Features
- Nested Fields: Filter on nested JSON properties
- Array Operations:
ANY,ALL,NONEon arrays - Regex Matching: Pattern-based string filtering
- Geo Filters: Distance and bounding box (planned)
- Custom Functions: Extensible filter functions
Installation
Add ruvector-filter to your Cargo.toml:
[]
= "0.1.1"
Quick Start
Basic Filtering
use ;
// Build filter expression
let filter = new
.field.eq
.and
.field.lt
.build?;
// Apply to search
let results = db.search?;
Complex Expressions
use ;
// Complex boolean expression
let filter = and;
// Range query
let filter = and;
String Matching
use op;
// String operations
let filter = and;
Nested Field Access
use op;
// Access nested JSON fields
let filter = and;
API Overview
Core Types
// Filter expression
// Filter builder
Filter Operations
// Convenience functions in `op` module
Filter Evaluation
Performance Tips
- Put most selective filters first in AND expressions
- Use IN instead of multiple OR for equality checks
- Avoid regex when possible - use prefix/suffix matching
- Index frequently filtered fields in your metadata
Related Crates
- ruvector-core - Core vector database engine
- ruvector-collections - Collection management
Documentation
- Main README - Complete project overview
- API Documentation - Full API reference
- GitHub Repository - Source code
License
MIT License - see LICENSE for details.