Skip to main content

rerankWithScorer()

The rerankWithScorer() function provides advanced reranking capabilities for vector search results by combining semantic relevance, vector similarity, and position-based scoring.

function rerankWithScorer({
results: QueryResult[],
query: string,
scorer: RelevanceScoreProvider,
options?: RerankerFunctionOptions,
}): Promise<RerankResult[]>;

Usage Example

import { openai } from "@ai-sdk/openai";
import { rerankWithScorer as rerank, CohereRelevanceScorer } from "@mastra/rag";

const scorer = new CohereRelevanceScorer("rerank-v3.5");

const rerankedResults = await rerank({
results: vectorSearchResults,
query: "How do I deploy to production?",
scorer,
options: {
weights: {
semantic: 0.5,
vector: 0.3,
position: 0.2,
},
topK: 3,
},
});

Parameters

results:

QueryResult[]
The vector search results to rerank

query:

string
The search query text used to evaluate relevance

scorer:

RelevanceScoreProvider
The relevance scorer to use for reranking

options?:

RerankerFunctionOptions
Options for the reranking model

The rerankWithScorer function accepts any RelevanceScoreProvider from @mastra/rag.

Note: For semantic scoring to work properly during re-ranking, each result must include the text content in its metadata.text field.

RerankerFunctionOptions

weights?:

WeightConfig
Weights for different scoring components (must add up to 1)
number

semantic?:

number (default: 0.4)
Weight for semantic relevance
number

vector?:

number (default: 0.4)
Weight for vector similarity
number

position?:

number (default: 0.2)
Weight for position-based scoring

queryEmbedding?:

number[]
Embedding of the query

topK?:

number
= 3
Number of top results to return

Returns

The function returns an array of RerankResult objects:

result:

QueryResult
The original query result

score:

number
Combined reranking score (0-1)

details:

ScoringDetails
Detailed scoring information

ScoringDetails

semantic:

number
Semantic relevance score (0-1)

vector:

number
Vector similarity score (0-1)

position:

number
Position-based score (0-1)

queryAnalysis?:

object
Query analysis details
number

magnitude:

Magnitude of the query
number[]

dominantFeatures:

Dominant features of the query