pub struct CompiledQueryGroup {
pub queries: Vec<CompiledQuery>,
pub regex_collected: RegexSet,
pub regex_collected_query_index: Vec<usize>,
pub always_run_queries: Vec<CompiledQuery>,
pub regex_feed: ScopeContent,
}
Expand description
Represents a group of compiled queries. This type has several
internal optimizations that makes scanning using a
CompiledQueryGroup
far more efficient than scanning using
compiled queries alone.
Namely, this type provides:
- proper multithreading support
- runtime optimizations for query execution
For information about how each of these optimizations
are implemented, see the documentation for
scan_concurrently()
and the various fields.
There are few cases—if not none at all—when a CompiledQueryGroup
should be mutable.
Fields§
§queries: Vec<CompiledQuery>
Contains the compiled queries that make up the compiled query group.
Importantly, this vector is highly ordered, meaning that changing the order of this array will lead to the entire scanning system breaking.
regex_collected: RegexSet
Contains every single RegEx pattern of every query’s triggers.
This highly efficient RegEx matching system
allows for the CompiledQueryGroup
’s scanning mechanism
to know in advance which of its queries will potentially
match on a document, without having to execute every
individual query.
regex_collected_query_index: Vec<usize>
This index relates every RegEx pattern in regex_collected
to its source query in queries
.
For example, the 1st element of this vector corresponds to the
1st RegEx pattern in regex_collected
and denotes the index
of its source query in queries
.
always_run_queries: Vec<CompiledQuery>
Contains the queries that cannot be optimized using the methods above, and therefore must be run on every document.
These queries typically are those that contain some sort of inverse boolean operator, therefore making it possible for the query to match even when none of its triggers match.
Queries that have a threshold with a requires
value of 0
and queries whose ScopeContent
doesn’t match the majority
are also included here as unoptimizable.
regex_feed: ScopeContent
The type of content that should be fed to the RegEx patterns
in regex_collected
.
Trait Implementations§
Source§impl Clone for CompiledQueryGroup
impl Clone for CompiledQueryGroup
Source§fn clone(&self) -> CompiledQueryGroup
fn clone(&self) -> CompiledQueryGroup
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl CompilableTo<CompiledQueryGroup> for QueryGroup
impl CompilableTo<CompiledQueryGroup> for QueryGroup
Source§impl From<CompiledQuery> for CompiledQueryGroup
impl From<CompiledQuery> for CompiledQueryGroup
Source§fn from(query: CompiledQuery) -> CompiledQueryGroup
fn from(query: CompiledQuery) -> CompiledQueryGroup
This helper function creates a CompiledQueryGroup
for single queries, enabling multithreading support for
single queries without any significant ‘hacks.’