Expand description
§Semantic Query Expander
Expands semantic search queries by generating related query variants — synonyms, paraphrases, sub-queries — to improve recall without sacrificing precision.
§Overview
The SemanticQueryExpander accepts a query string and an ExpansionStrategy,
then produces an ExpandedQuery containing the original query plus generated variants.
Variants are drawn from a TermEntry registry that encodes lexical relations
(TermRelation) between terms, each annotated with a relevance weight.
§Example
use ipfrs_semantic::query_expander::{
ExpansionStrategy, SemanticQueryExpander, TermEntry, TermRelation,
};
let mut expander = SemanticQueryExpander::new(5);
expander.register_term(TermEntry {
term: "car".to_string(),
related_term: "automobile".to_string(),
relation: TermRelation::Synonym,
weight: 0.9,
});
let expanded = expander.expand("car", ExpansionStrategy::Synonyms);
assert_eq!(expanded.original, "car");
assert!(!expanded.expansions.is_empty());Structs§
- Expanded
Query - Result of a query expansion operation.
- Expander
Stats - Runtime statistics for a
SemanticQueryExpander. - Semantic
Query Expander - Expands semantic search queries using a registry of term relations.
- Term
Entry - A single entry in the term-relation registry.
- Vector
Expanded Query - Result of a vector-based query expansion.
- Vector
Expander Config - Configuration for the
VectorQueryExpander. - Vector
Expander Stats - Runtime statistics for a
VectorQueryExpander. - Vector
Query Expander - Vector-based semantic query expander.
- Vector
Query Expansion - A single expansion term produced by
VectorQueryExpander.
Enums§
- Expansion
Strategy - Expansion strategy controlling how query variants are generated.
- Term
Relation - Lexical / semantic relation between two terms.