---
sidebar_position: 0
sidebar_class_name: hidden
---

import {CategoryTable, IndexTable} from '@theme/FeatureTables'

# Retrievers

A [retriever](/docs/concepts/#retrievers) 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](/docs/integrations/retrievers/wikipedia/) and [Amazon Kendra](/docs/integrations/retrievers/amazon_kendra_retriever/).

Retrievers accept a string query as input and return a list of [Documents](https://python.langchain.com/v0.2/api_reference/core/documents/langchain_core.documents.base.Document.html) as output.

For specifics on how to use retrievers, see the [relevant how-to guides here](/docs/how_to/#retrievers).

Note that all [vector stores](/docs/concepts/#vector-stores) can be [cast to retrievers](/docs/how_to/vectorstore_retriever/).
Refer to the vector store [integration docs](/docs/integrations/vectorstores/) for available vector stores.
This page lists custom retrievers, implemented via subclassing [BaseRetriever](/docs/how_to/custom_retriever/).

## Bring-your-own documents

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

<CategoryTable category="document_retrievers" />

## External index

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

<CategoryTable category="external_retrievers" />

## All retrievers

<IndexTable />
