Skip to main content

Retrieval strategies

Database-agnostic strategies that automatically optimize for your store.

BasicSimilarityStrategy (getting started)

{
"retrieval_strategy": {
"type": "BasicSimilarityStrategy",
"config": { "distance_metric": "cosine" }
}
}

Use cases: simple semantic search; Performance: fast; Complexity: low.

MetadataFilteredStrategy (smart filtering)

{
"retrieval_strategy": {
"type": "MetadataFilteredStrategy",
"config": {
"distance_metric": "cosine",
"default_filters": {
"priority": ["high", "medium"],
"type": "documentation"
},
"fallback_multiplier": 3
}
}
}

Features: native filtering when supported, automatic fallback, complex operators. Use cases: domain searches, multi-tenant. Performance: medium.

MultiQueryStrategy (enhanced recall)

{
"retrieval_strategy": {
"type": "MultiQueryStrategy",
"config": {
"num_queries": 3,
"aggregation_method": "weighted",
"search_multiplier": 2
}
}
}

Use cases: ambiguous queries, query expansion. Performance: medium.

RerankedStrategy (sophisticated ranking)

{
"retrieval_strategy": {
"type": "RerankedStrategy",
"config": {
"initial_k": 20,
"length_normalization": 1000,
"rerank_factors": {
"recency": 0.1,
"length": 0.05,
"metadata_boost": 0.2
}
}
}
}

Use cases: production systems; Performance: slower; Complexity: high.

HybridUniversalStrategy (best of all worlds)

{
"retrieval_strategy": {
"type": "HybridUniversalStrategy",
"config": {
"combination_method": "weighted_average",
"normalize_scores": true,
"diversity_boost": 0.1,
"strategies": [
{ "type": "BasicSimilarityStrategy", "weight": 0.4 },
{ "type": "MetadataFilteredStrategy", "weight": 0.3 },
{ "type": "RerankedStrategy", "weight": 0.2 },
{ "type": "MultiQueryStrategy", "weight": 0.1 }
]
}
}
}

Strategy selection guide

Use CaseRecommendedWhy
Getting StartedBasicSimilarityStrategySimple, fast baseline
Production GeneralHybridUniversalStrategyBalanced performance
High PrecisionRerankedStrategyMulti-factor ranking
Filtered ContentMetadataFilteredStrategyEfficient domain-specific searches
Complex QueriesMultiQueryStrategyBetter recall for ambiguous questions