Skip to main content
A retriever is an interface that returns documents given an unstructured query. It is more general than a vector store. A retriever does not need to be able to store documents, only to return (or retrieve) them. Retrievers can be created from vector stores, but are also broad enough to include Wikipedia search and Amazon Kendra. Retrievers accept a string query as input and return a list of Documents as output. Note that all vector stores can be cast to retrievers. Refer to the vector store integration docs for available vector stores. This page lists custom retrievers, implemented via subclassing BaseRetriever.

Bring-your-own documents

The below retrievers allow you to index and search a custom corpus of documents.

External index

The below retrievers will search over an external index (e.g., constructed from Internet data or similar).

All retrievers

Note: The descriptions in the table below are truncated for readability.

Activeloop Deep Memory

Amazon Kendra

Arcee

Arxiv

AskNews

Azure AI Search

Bedrock (Knowledge Bases)

BM25

Box

BREEBS (Open Knowledge)

Chaindesk

ChatGPT plugin

Cognee

Cohere reranker

Cohere RAG

Contextual AI Reranker

Dappier

DocArray

Dria

ElasticSearch BM25

Elasticsearch

Embedchain

FlashRank reranker

Fleet AI Context

Galaxia

Google Drive

Google Vertex AI Search

Graph RAG

GreenNode

IBM watsonx.ai

JaguarDB Vector Database

Kay.ai

Kinetica Vectorstore

kNN

LinkupSearchRetriever

LLMLingua Document Compressor

LOTR (Merger Retriever)

Metal

NanoPQ (Product Quantization)

Nebius

needle

Nimble

Outline

Permit

Pinecone Hybrid Search

Pinecone Rerank

PubMed

Qdrant Sparse Vector

RAGatouille

RePhraseQuery

Rememberizer

SEC filing

SVM

TavilySearchAPI

TF-IDF

NeuralDB

ValyuContext

Vectorize

Vespa

Wikipedia

You.com

Zep Cloud

Zep Open Source

Zilliz Cloud Pipeline

Zotero


Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.