pub struct SearchQuery {
pub search_term: NormalizedTermValue,
pub search_terms: Option<Vec<NormalizedTermValue>>,
pub operator: Option<LogicalOperator>,
pub skip: Option<usize>,
pub limit: Option<usize>,
pub role: Option<RoleName>,
}Expand description
A search query for finding documents in the knowledge graph.
Supports both single-term and multi-term queries with logical operators (AND/OR).
Results can be paginated using skip and limit, and scoped to specific roles.
§Examples
§Single-term query
use terraphim_types::{SearchQuery, NormalizedTermValue, RoleName};
let query = SearchQuery {
search_term: NormalizedTermValue::from("machine learning"),
search_terms: None,
operator: None,
skip: None,
limit: Some(10),
role: Some(RoleName::new("data_scientist")),
};§Multi-term AND query
use terraphim_types::{SearchQuery, NormalizedTermValue, LogicalOperator, RoleName};
let query = SearchQuery::with_terms_and_operator(
NormalizedTermValue::from("rust"),
vec![NormalizedTermValue::from("async"), NormalizedTermValue::from("tokio")],
LogicalOperator::And,
Some(RoleName::new("engineer")),
);
assert!(query.is_multi_term_query());
assert_eq!(query.get_all_terms().len(), 3);Fields§
§search_term: NormalizedTermValuePrimary search term for backward compatibility
search_terms: Option<Vec<NormalizedTermValue>>Multiple search terms for logical operations
operator: Option<LogicalOperator>Logical operator for combining multiple terms (defaults to OR if not specified)
skip: Option<usize>Number of results to skip (for pagination)
limit: Option<usize>Maximum number of results to return
role: Option<RoleName>Role context for this search
Implementations§
Source§impl SearchQuery
impl SearchQuery
Sourcepub fn get_all_terms(&self) -> Vec<&NormalizedTermValue>
pub fn get_all_terms(&self) -> Vec<&NormalizedTermValue>
Get all search terms (both single and multiple)
Sourcepub fn is_multi_term_query(&self) -> bool
pub fn is_multi_term_query(&self) -> bool
Check if this is a multi-term query with logical operators
Sourcepub fn get_operator(&self) -> LogicalOperator
pub fn get_operator(&self) -> LogicalOperator
Get the effective logical operator (defaults to Or for multi-term queries)
Sourcepub fn with_terms_and_operator(
primary_term: NormalizedTermValue,
additional_terms: Vec<NormalizedTermValue>,
operator: LogicalOperator,
role: Option<RoleName>,
) -> Self
pub fn with_terms_and_operator( primary_term: NormalizedTermValue, additional_terms: Vec<NormalizedTermValue>, operator: LogicalOperator, role: Option<RoleName>, ) -> Self
Create a new SearchQuery with multiple terms and an operator
Trait Implementations§
Source§impl Clone for SearchQuery
impl Clone for SearchQuery
Source§fn clone(&self) -> SearchQuery
fn clone(&self) -> SearchQuery
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SearchQuery
impl Debug for SearchQuery
Source§impl Default for SearchQuery
impl Default for SearchQuery
Source§fn default() -> SearchQuery
fn default() -> SearchQuery
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for SearchQuery
impl<'de> Deserialize<'de> for SearchQuery
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SearchQuery
impl RefUnwindSafe for SearchQuery
impl Send for SearchQuery
impl Sync for SearchQuery
impl Unpin for SearchQuery
impl UnwindSafe for SearchQuery
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