pub struct SearchConfig {
pub batch_size: usize,
pub max_tokens: usize,
pub chunk: ChunkConfig,
pub text_mode: bool,
pub cascade_dim: Option<usize>,
pub file_type: Option<String>,
pub exclude_extensions: Vec<String>,
pub include_extensions: Vec<String>,
pub ignore_patterns: Vec<String>,
pub scope: Scope,
pub mode: SearchMode,
}Expand description
Runtime configuration for the search pipeline.
All tuning parameters that were previously compile-time constants are gathered here so they can be set from CLI arguments without recompiling.
Fields§
§batch_size: usizeChunks per inference call. Larger values amortize call overhead but consume more memory. Default: 32.
max_tokens: usizeMaximum tokens fed to the model per chunk. 0 means no limit.
Capping tokens controls inference cost for minified or dense source.
BERT attention cost scales linearly with token count, and CLS pooling
means the first token’s representation carries most semantic weight.
Default: 128 (7.7× faster than 512, with minimal quality loss).
chunk: ChunkConfigChunking parameters forwarded to the chunking phase.
text_mode: boolForce all files to be chunked as plain text (sliding windows only).
When false (default), files with recognized extensions use tree-sitter
semantic chunking, and unrecognized extensions fall back to sliding windows.
cascade_dim: Option<usize>MRL cascade pre-filter dimension.
When set, SearchIndex stores a truncated
and L2-re-normalized copy of the embedding matrix at this dimension for
fast two-phase cascade search. None (default) disables cascade search.
file_type: Option<String>Optional file type filter (e.g. “rust”, “python”, “js”).
When set, only files matching this type (using ripgrep’s built-in type database) are collected during the walk phase.
exclude_extensions: Vec<String>File extensions to exclude during the walk phase.
include_extensions: Vec<String>File extensions to include during the walk phase. Empty means “no extension whitelist” (other filters still apply). Non-empty restricts walking to files whose extension matches one of these (normalized lowercase, with or without leading dot).
ignore_patterns: Vec<String>Additional .gitignore-style patterns to exclude during the walk phase.
scope: ScopeIntent-shaped scope: code, docs, or all. Drives the default
extension whitelist when include_extensions is empty and the
rerank gate in the MCP layer (docs and all-on-mixed-corpus
fire rerank; code skips). See Scope.
mode: SearchModeSearch mode: hybrid (default), semantic, or keyword.
Implementations§
Source§impl SearchConfig
impl SearchConfig
Sourcepub fn walk_options(&self) -> WalkOptions
pub fn walk_options(&self) -> WalkOptions
Convert search configuration into shared walk filters.
Resolves the scope-implied extension whitelist:
- Explicit
include_extensionsalways wins. - Otherwise
Scope::Docsinjects the canonical prose set (PROSE_EXTENSIONS). Scope::Codeinjects the canonical prose set as exclusions (so prose files are skipped during walk).Scope::Allleaves the include set empty (no whitelist).
Sourcepub fn apply_repo_config(&mut self, root: &Path)
pub fn apply_repo_config(&mut self, root: &Path)
Merge ignore patterns from .ripvec/config.toml, if present.
Trait Implementations§
Source§impl Clone for SearchConfig
impl Clone for SearchConfig
Source§fn clone(&self) -> SearchConfig
fn clone(&self) -> SearchConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SearchConfig
impl Debug for SearchConfig
Auto Trait Implementations§
impl Freeze for SearchConfig
impl RefUnwindSafe for SearchConfig
impl Send for SearchConfig
impl Sync for SearchConfig
impl Unpin for SearchConfig
impl UnsafeUnpin for SearchConfig
impl UnwindSafe for SearchConfig
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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>
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.