Skip to main content

Module query_expander

Module query_expander 

Source
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§

ExpandedQuery
Result of a query expansion operation.
ExpanderStats
Runtime statistics for a SemanticQueryExpander.
SemanticQueryExpander
Expands semantic search queries using a registry of term relations.
TermEntry
A single entry in the term-relation registry.
VectorExpandedQuery
Result of a vector-based query expansion.
VectorExpanderConfig
Configuration for the VectorQueryExpander.
VectorExpanderStats
Runtime statistics for a VectorQueryExpander.
VectorQueryExpander
Vector-based semantic query expander.
VectorQueryExpansion
A single expansion term produced by VectorQueryExpander.

Enums§

ExpansionStrategy
Expansion strategy controlling how query variants are generated.
TermRelation
Lexical / semantic relation between two terms.