pub struct Executor<'a> { /* private fields */ }Expand description
Query executor that searches through an open index and verifies candidate files against the original regex.
Optional caching layers reduce redundant work across queries:
PostingCacheavoids re-decoding compressed posting listsNegCacheskips re-verification of known non-matching filesRegexPoolcaches compiled regex objects across queries
Implementations§
Source§impl<'a> Executor<'a>
impl<'a> Executor<'a>
Sourcepub fn new(index: &'a Reader) -> Self
pub fn new(index: &'a Reader) -> Self
Create an executor backed by the given index reader with default caches.
Sourcepub fn new_with_caches(
index: &'a Reader,
posting_cache: Arc<PostingCache>,
neg_cache: Arc<NegCache>,
regex_pool: Arc<RegexPool>,
) -> Self
pub fn new_with_caches( index: &'a Reader, posting_cache: Arc<PostingCache>, neg_cache: Arc<NegCache>, regex_pool: Arc<RegexPool>, ) -> Self
Create an executor that shares caches with another executor.
Use this in daemon mode to reuse posting list, negative, and regex caches across queries without re-decoding or re-verifying.
Sourcepub fn posting_cache(&self) -> &PostingCache
pub fn posting_cache(&self) -> &PostingCache
Returns a reference to the posting list cache.
Sourcepub fn regex_pool(&self) -> &RegexPool
pub fn regex_pool(&self) -> &RegexPool
Returns a reference to the regex compilation pool.
Sourcepub fn execute(
&mut self,
plan: &QueryPlan,
options: &QueryOptions,
) -> Result<(Vec<Match>, QueryStats)>
pub fn execute( &mut self, plan: &QueryPlan, options: &QueryOptions, ) -> Result<(Vec<Match>, QueryStats)>
Execute a query plan against the index.
§Errors
Returns an error if I/O fails when reading index sections, if posted data is corrupted, or if file content cannot be read during verification.
Sourcepub fn verify_stream_for_test<R: Read>(
&self,
reader: R,
path: &Path,
regex: &Regex,
options: &QueryOptions,
) -> Result<Vec<Match>>
pub fn verify_stream_for_test<R: Read>( &self, reader: R, path: &Path, regex: &Regex, options: &QueryOptions, ) -> Result<Vec<Match>>
Exposed for integration testing of the streaming logic.
§Errors
Returns an error if the file content cannot be read or if regex matching operations fail.
Auto Trait Implementations§
impl<'a> Freeze for Executor<'a>
impl<'a> RefUnwindSafe for Executor<'a>
impl<'a> Send for Executor<'a>
impl<'a> Sync for Executor<'a>
impl<'a> Unpin for Executor<'a>
impl<'a> UnsafeUnpin for Executor<'a>
impl<'a> UnwindSafe for Executor<'a>
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
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 more