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.
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.
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.
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
.
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.
The type of content that should be fed to the RegEx patterns
in regex_collected
.
Compiles the QueryGroup
into a CompiledQueryGroup
. Like
all compilation operations, this is expensive.
Scan a single document and return the output.
Scan a batch of documents and return the output. This function is singlethreaded and often not very performant. Read more
Launch a 'scan engine' and create an asynchronous and concurrent scanning system. In most cases, this is what you'll want to use. Read more
This helper function creates a CompiledQueryGroup
for single queries, enabling multithreading support for
single queries without any significant 'hacks.'
Performs copy-assignment from source
. Read more
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static