Ragex.Retrieval.QueryExpansion
(Ragex v0.13.0)
View Source
Query expansion using MetaAST semantic features.
Enhances search queries by:
- Extracting semantic features from results
- Adding cross-language synonyms
- Expanding with related constructs
- Building semantic context
Examples
# Basic expansion
QueryExpansion.expand("find map function")
# => "find map function collection transform iterate"
# Context-aware expansion
QueryExpansion.expand("debug error", intent: :debug)
# => "debug error exception failure bug issue problem"
Summary
Functions
Build an enriched query from original query + result features.
Expand a query string with semantic features and synonyms.
Extract semantic features from query results to enhance future queries.
Suggest query variations based on semantic analysis.
Functions
Build an enriched query from original query + result features.
Useful for iterative search refinement.
Examples
results = [...] # Initial search results
features = QueryExpansion.extract_features_from_results(results)
QueryExpansion.enrich_query("map function", features, max_features: 3)
# => "map function collection transform iterate"
Expand a query string with semantic features and synonyms.
Options
:intent- Query intent (:explain,:refactor,:example,:debug) (default: auto-detect):include_synonyms- Include semantic synonyms (default: true):include_cross_language- Include cross-language terms (default: true):max_terms- Maximum expansion terms to add (default: 5)
Examples
QueryExpansion.expand("map over list")
# => "map over list collection iterate transform apply"
QueryExpansion.expand("fix bug", intent: :debug)
# => "fix bug error exception failure issue problem"
Extract semantic features from query results to enhance future queries.
Analyzes MetaAST metadata from results to build a semantic feature set that can be used for query refinement.
Examples
results = [%{meta_ast: {:collection_op, :map, ...}}, ...]
QueryExpansion.extract_features_from_results(results)
# => ["collection", "map", "transform", "iteration", "apply"]
Suggest query variations based on semantic analysis.
Returns alternative phrasings that might yield better results.
Examples
QueryExpansion.suggest_variations("find map")
# => [
# "find map function",
# "find transform operation",
# "find collection map",
# "find iterate apply"
# ]