pub enum ExecutionStep {
VectorSearch {
collection: String,
ef_search: usize,
weight: f32,
},
LexicalSearch {
collection: String,
query: String,
fields: Vec<String>,
weight: f32,
},
PreFilter {
filters: Vec<MetadataFilter>,
},
Fusion {
method: FusionMethod,
rrf_k: f32,
},
Rerank {
model: String,
top_n: usize,
},
Limit {
count: usize,
min_score: Option<f32>,
},
Redact {
fields: Vec<String>,
method: RedactionMethod,
},
}Expand description
Individual execution step
Variants§
VectorSearch
Vector similarity search
LexicalSearch
Lexical (BM25) search
PreFilter
Pre-filter (before retrieval) - REQUIRED for security
This is the ONLY allowed filter step. Filters are always applied during candidate generation via AllowedSet, never after.
Fields
§
filters: Vec<MetadataFilter>Fusion
Score fusion
Rerank
Reranking (does NOT filter, only re-orders)
Limit
Limit results (applied AFTER all filtering is complete)
Redact
Redaction transform (post-retrieval modification, NOT filtering)
Unlike filtering (which removes candidates), redaction transforms the content of already-allowed documents. This preserves the invariant: result-set ⊆ allowed-set.
Trait Implementations§
Source§impl Clone for ExecutionStep
impl Clone for ExecutionStep
Source§fn clone(&self) -> ExecutionStep
fn clone(&self) -> ExecutionStep
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ExecutionStep
impl RefUnwindSafe for ExecutionStep
impl Send for ExecutionStep
impl Sync for ExecutionStep
impl Unpin for ExecutionStep
impl UnsafeUnpin for ExecutionStep
impl UnwindSafe for ExecutionStep
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more