Reranker
The MariaDB AI RAG reranker applies a cross-encoder second pass to re-score candidate chunks, with FlashRank, Sentence-Transformers, and Cohere backends and configurable presets.
Reranking improves retrieval quality in the RAG pipeline.
Vector search is fast, but it can miss deeper contextual relevance. A reranker adds a second pass that rescans the retrieved documents and sorts them by how well they answer the exact query.
In practice, retrieval may return 10 candidate documents. The reranker scores those candidates more precisely and returns the best few results to the next stage.
Rerank endpoint
Use POST /rerank to rerank raw text documents against a query.
This endpoint uses a cross-encoder model to re-score and sort documents. It improves relevance over vector similarity alone.
Request headers
Authorization: Bearer<your_jwt_token>Content-Type:application/json
Request body
query
string
Yes
-
Query used to score each document.
documents
Array<string>
Yes
-
Document texts to rerank. Must contain at least one item.
doc_ids
Array<Any>
No
null
Optional IDs for mapping results back to source records.
metadata
Array<dict>
No
null
Optional metadata entries aligned with each document.
top_k
integer
No
null
Maximum number of results to return. If omitted, all documents are returned in ranked order.
model_type
string
No
"flashrank"
Backend to use. Valid values: "flashrank", "sentence-transformers", "cohere", "hybrid".
model_name
string
No
"ms-marco-MiniLM-L-12-v2"
Specific reranker model.
alpha
float
No
0.7
Hybrid-only weight for the cross-encoder score.
beta
float
No
0.3
Hybrid-only weight for the TF-IDF score.
api_key
string
No
null
Required only when model_type is "cohere".
Example request
Response format
The response is a JSON array of RerankResponse objects, sorted from highest score to lowest score.
doc_id
Any
Document ID, if provided in the request.
text
string
Document text.
score
float
Relevance score. Higher is better.
rank
integer
Final rank. 1 is best.
metadata
dict
Metadata entry, if provided in the request.
Example response
Reranking in the full pipeline
You will usually enable reranking inside POST /orchestrate/generation.
Include a reranking object in the request body:
If reranking.enabled is true, the system fetches extra documents first, such as top_k * 2.0. It reranks them and forwards only the best top_k results to the LLM.
Supported models and providers
The reranking layer supports multiple backends and models.
By default, the system uses FlashRank with ms-marco-MiniLM-L-12-v2.
Why this default:
It is fast.
It runs well on CPUs.
It does not require a GPU.
It is cached in memory for faster repeated requests.
Supported backends:
flashrank: Default option for fast local CPU deployments. Example:ms-marco-MiniLM-L-12-v2sentence-transformers: Local Python ML environments. Example:cross-encoder/ms-marco-TinyBERT-L-2-v2cohere: External cloud API. Example:rerank-english-v3.0
Configuration
You can control default reranker behavior through config.env.
Core settings
RERANKING_ENABLED=true: Enables or disables reranking globally.RERANKING_MODEL_TYPE=flashrank: Selects the backend.RERANKING_MODEL_NAME=ms-marco-MiniLM-L-12-v2: Selects the model.RERANKING_API_KEY=: Required only for cloud providers such as Cohere.
Search strategy settings
RERANKING_TOP_K_MULTIPLIER=2.0: Number of extra documents to fetch before reranking.RERANKING_DEFAULT_TOP_K=5: Default number of reranked results to return.
With a multiplier of 2.0, a request for 5 final documents pulls 10 candidates before reranking.
Performance and caching settings
RERANKING_CACHE_MODELS=true: Keeps models loaded in memory.RERANKING_CACHE_MAX_SIZE=3: Maximum number of cached models.RERANKING_ENABLE_BATCHING=true: Processes documents in batches.RERANKING_BATCH_SIZE=32: Number of documents scored per batch.
Presets
You can also use built-in presets through RERANKING_PRESET.
fast
Model:
ms-marco-TinyBERT-L-2-v2with FlashRankBest for lowest latency
Uses a
1.5xmultiplier
balanced
Model:
ms-marco-MiniLM-L-12-v2with FlashRankDefault preset
Balances speed and quality
Uses a
2.0xmultiplier
quality
Model:
BAAI/bge-reranker-v2-m3with Sentence-TransformersBest for highest accuracy
Better suited to GPU-backed deployments
Uses a
3.0xmultiplier
Summary
For standard use, keep the default FlashRank setup.
For custom workflows, use
POST /rerank.For higher accuracy on strong hardware, use
RERANKING_PRESET=quality.For fully managed cloud reranking, use
RERANKING_MODEL_TYPE=cohereand provideRERANKING_API_KEY.
This page is: Copyright © 2026 MariaDB. All rights reserved.
Last updated
Was this helpful?

