rag.search.rerankers

Re-ranking strategies for search result improvement.

Re-ranking strategies for search result improvement.

class RerankerBase[source]

Bases: object

Base class for re-rankers.

rerank(query, results, n_results=None)[source]

Re-rank search results.

Parameters:
  • query (str) – Original search query.

  • results (list[dict[str, Any]]) – Search results to re-rank.

  • n_results (int | None) – Number of results to return (None = all).

Returns:

Re-ranked results.

Return type:

list[dict[str, Any]]

class CrossEncoderReranker(model_name='cross-encoder/ms-marco-MiniLM-L-6-v2', max_length=512, fastembed_model_name=None)[source]

Bases: RerankerBase

Re-ranker using cross-encoder models.

Tries sentence-transformers first, then falls back to fastembed (ONNX-based). Requires at least one of:

pip install sentence-transformers pip install fastembed

Parameters:
  • model_name (str) – Cross-encoder model name.

  • max_length (int) – Maximum sequence length (sentence-transformers only).

  • fastembed_model_name (str | None) – Model name for fastembed fallback.

rerank(query, results, n_results=None)[source]

Re-rank results using cross-encoder scoring.

Parameters:
  • query (str) – Original search query.

  • results (list[dict[str, Any]]) – Search results to re-rank.

  • n_results (int | None) – Number of results to return.

Returns:

Re-ranked results with updated scores.

Return type:

list[dict[str, Any]]

class DiversityReranker(lambda_param=0.7)[source]

Bases: RerankerBase

Re-ranker that promotes result diversity.

Re-orders results to maximize diversity based on content similarity. Uses MMR (Maximal Marginal Relevance) style selection.

Parameters:

lambda_param (float) – Balance between relevance and diversity (0-1). Higher = more relevance, lower = more diversity.

rerank(query, results, n_results=None)[source]

Re-rank results for diversity.

Parameters:
  • query (str) – Original search query (not used, kept for interface).

  • results (list[dict[str, Any]]) – Search results to re-rank.

  • n_results (int | None) – Number of results to return.

Returns:

Diversified results.

Return type:

list[dict[str, Any]]

class NoopReranker[source]

Bases: RerankerBase

Pass-through re-ranker that does nothing.

Used when re-ranking is disabled but a reranker interface is expected.

rerank(query, results, n_results=None)[source]

Return results unchanged.

Parameters:
  • query (str) – Original search query (ignored).

  • results (list[dict[str, Any]]) – Search results.

  • n_results (int | None) – Number of results to return.

Returns:

Original results, optionally truncated.

Return type:

list[dict[str, Any]]

get_reranker(reranker_type='none', **kwargs)[source]

Get a reranker by type name.

Parameters:
  • reranker_type (str) – Type of reranker (“cross_encoder”, “diversity”, “none”).

  • **kwargs (Any) – Additional arguments for the reranker.

Returns:

Configured reranker instance.

Return type:

RerankerBase

Classes

class CrossEncoderReranker(model_name='cross-encoder/ms-marco-MiniLM-L-6-v2', max_length=512, fastembed_model_name=None)[source]

Bases: RerankerBase

Re-ranker using cross-encoder models.

Tries sentence-transformers first, then falls back to fastembed (ONNX-based). Requires at least one of:

pip install sentence-transformers pip install fastembed

Parameters:
  • model_name (str) – Cross-encoder model name.

  • max_length (int) – Maximum sequence length (sentence-transformers only).

  • fastembed_model_name (str | None) – Model name for fastembed fallback.

rerank(query, results, n_results=None)[source]

Re-rank results using cross-encoder scoring.

Parameters:
  • query (str) – Original search query.

  • results (list[dict[str, Any]]) – Search results to re-rank.

  • n_results (int | None) – Number of results to return.

Returns:

Re-ranked results with updated scores.

Return type:

list[dict[str, Any]]

class DiversityReranker(lambda_param=0.7)[source]

Bases: RerankerBase

Re-ranker that promotes result diversity.

Re-orders results to maximize diversity based on content similarity. Uses MMR (Maximal Marginal Relevance) style selection.

Parameters:

lambda_param (float) – Balance between relevance and diversity (0-1). Higher = more relevance, lower = more diversity.

rerank(query, results, n_results=None)[source]

Re-rank results for diversity.

Parameters:
  • query (str) – Original search query (not used, kept for interface).

  • results (list[dict[str, Any]]) – Search results to re-rank.

  • n_results (int | None) – Number of results to return.

Returns:

Diversified results.

Return type:

list[dict[str, Any]]

class NoopReranker[source]

Bases: RerankerBase

Pass-through re-ranker that does nothing.

Used when re-ranking is disabled but a reranker interface is expected.

rerank(query, results, n_results=None)[source]

Return results unchanged.

Parameters:
  • query (str) – Original search query (ignored).

  • results (list[dict[str, Any]]) – Search results.

  • n_results (int | None) – Number of results to return.

Returns:

Original results, optionally truncated.

Return type:

list[dict[str, Any]]

class RerankerBase[source]

Bases: object

Base class for re-rankers.

rerank(query, results, n_results=None)[source]

Re-rank search results.

Parameters:
  • query (str) – Original search query.

  • results (list[dict[str, Any]]) – Search results to re-rank.

  • n_results (int | None) – Number of results to return (None = all).

Returns:

Re-ranked results.

Return type:

list[dict[str, Any]]

Functions

get_reranker(reranker_type='none', **kwargs)[source]

Get a reranker by type name.

Parameters:
  • reranker_type (str) – Type of reranker (“cross_encoder”, “diversity”, “none”).

  • **kwargs (Any) – Additional arguments for the reranker.

Returns:

Configured reranker instance.

Return type:

RerankerBase