Expand description
Query rewriting and optimization for vector search
This module provides automatic query rewriting and optimization to improve search performance and accuracy. It transforms queries before execution using:
- Query expansion: Add related terms/vectors
- Query reduction: Remove redundant components
- Parameter tuning: Optimize search parameters
- Index selection hints: Suggest best indices to use
- Semantic optimization: Improve semantic relevance
§Features
- Rule-based rewriting
- Statistics-driven optimization
- Query plan caching
- Performance prediction
- Automatic parameter tuning
§Example
ⓘ
use oxirs_vec::query_rewriter::{QueryRewriter, RewriteRule};
use oxirs_vec::Vector;
let rewriter = QueryRewriter::new();
let query = Vector::new(vec![1.0, 2.0, 3.0]);
let rewritten = rewriter.rewrite(&query, 10).unwrap();
println!("Original k: 10, Optimized k: {}", rewritten.optimized_k);Structs§
- Query
Rewriter - Query rewriter
- Query
Rewriter Config - Query rewriting configuration
- Query
Vector Statistics - Query statistics for optimization
- Rewritten
Query - Rewritten query
- Rule
Statistics - Statistics for a rewrite rule
Enums§
- Rewrite
Rule - Rewrite rule