pub struct SearchStage { /* private fields */ }Expand description
Search Stage - executes tree search with optional Pilot guidance.
This stage:
- Instantiates the selected search algorithm
- Creates the appropriate strategy
- Executes search with optional Pilot intervention
- Collects candidates
§Pilot Integration
When a Pilot is provided via [with_pilot], the search algorithm
can consult it at key decision points for semantic guidance.
Without a Pilot, the search uses pure algorithm scoring.
§Example
ⓘ
use vectorless::retrieval::pilot::{LlmPilot, PilotConfig};
let pilot = LlmPilot::new(llm_client, PilotConfig::default());
let stage = SearchStage::new()
.with_pilot(Arc::new(pilot))
.with_llm_strategy(llm_strategy);Implementations§
Source§impl SearchStage
impl SearchStage
Sourcepub fn with_pilot(self, pilot: Arc<dyn Pilot>) -> Self
pub fn with_pilot(self, pilot: Arc<dyn Pilot>) -> Self
Add Pilot for semantic navigation guidance.
When provided, the search algorithm will consult the Pilot at key decision points to get semantic guidance on which branches are most relevant to the query.
Sourcepub fn with_llm_strategy(self, strategy: LlmStrategy) -> Self
pub fn with_llm_strategy(self, strategy: LlmStrategy) -> Self
Add LLM strategy for complex queries.
Sourcepub fn with_semantic_strategy(
self,
strategy: Arc<dyn RetrievalStrategy>,
) -> Self
pub fn with_semantic_strategy( self, strategy: Arc<dyn RetrievalStrategy>, ) -> Self
Add semantic strategy for embedding-based search.
Sourcepub fn with_hybrid_strategy(self, strategy: Arc<dyn RetrievalStrategy>) -> Self
pub fn with_hybrid_strategy(self, strategy: Arc<dyn RetrievalStrategy>) -> Self
Add hybrid strategy (BM25 + LLM refinement).
If no LLM strategy is set, creates one from the provided LLM strategy.
Sourcepub fn with_hybrid_config(self, config: HybridConfig) -> Self
pub fn with_hybrid_config(self, config: HybridConfig) -> Self
Configure hybrid strategy with custom config using the LLM strategy.
Trait Implementations§
Source§impl Default for SearchStage
impl Default for SearchStage
Source§impl RetrievalStage for SearchStage
impl RetrievalStage for SearchStage
Source§fn failure_policy(&self) -> FailurePolicy
fn failure_policy(&self) -> FailurePolicy
Failure policy for this stage. Read more
Source§fn can_backtrack(&self) -> bool
fn can_backtrack(&self) -> bool
Whether this stage can trigger backtracking. Read more
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut PipelineContext,
) -> Pin<Box<dyn Future<Output = Result<StageOutcome>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut PipelineContext,
) -> Pin<Box<dyn Future<Output = Result<StageOutcome>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the stage. Read more
Source§fn is_optional(&self) -> bool
fn is_optional(&self) -> bool
Whether this stage is optional (can be skipped on failure). Read more
Auto Trait Implementations§
impl Freeze for SearchStage
impl !RefUnwindSafe for SearchStage
impl Send for SearchStage
impl Sync for SearchStage
impl Unpin for SearchStage
impl UnsafeUnpin for SearchStage
impl !UnwindSafe for SearchStage
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> 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