pub struct SearchPlan {
pub stages: Vec<PipelineStage>,
pub ef_search: usize,
pub k: usize,
pub use_batched_expansion: bool,
pub prefetch_distance: usize,
pub estimated_latency: Duration,
pub estimated_recall: f32,
pub created_at: Instant,
}Expand description
The search plan: a complete specification for executing a search.
Fields§
§stages: Vec<PipelineStage>Pipeline stages in execution order.
ef_search: usizeef_search parameter for HNSW.
k: usizeFinal k to return.
use_batched_expansion: boolWhether to use batched expansion.
prefetch_distance: usizePrefetch distance (0 = disabled).
estimated_latency: DurationEstimated total latency.
estimated_recall: f32Estimated recall.
created_at: InstantPlan generation timestamp.
Implementations§
Source§impl SearchPlan
impl SearchPlan
Sourcepub fn simple(k: usize, ef_search: usize) -> Self
pub fn simple(k: usize, ef_search: usize) -> Self
Create a simple single-stage plan (F32 only).
Sourcepub fn multi_stage(k: usize, total_vectors: usize, target_recall: f32) -> Self
pub fn multi_stage(k: usize, total_vectors: usize, target_recall: f32) -> Self
Create a multi-stage plan with BPS → PQ → F32 pipeline.
Sourcepub fn total_cost(&self, dimension: usize, cost_model: &CostModel) -> f32
pub fn total_cost(&self, dimension: usize, cost_model: &CostModel) -> f32
Get the total estimated cost.
Trait Implementations§
Source§impl Clone for SearchPlan
impl Clone for SearchPlan
Source§fn clone(&self) -> SearchPlan
fn clone(&self) -> SearchPlan
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 SearchPlan
impl RefUnwindSafe for SearchPlan
impl Send for SearchPlan
impl Sync for SearchPlan
impl Unpin for SearchPlan
impl UnsafeUnpin for SearchPlan
impl UnwindSafe for SearchPlan
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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