```typescript
const vectorStore = ...
const retriever = vectorStore.asRetriever();
```

Here's a more end-to-end example:

```typescript
import { OpenAI } from "langchain/llms/openai";
import { RetrievalQAChain } from "langchain/chains";
import { HNSWLib } from "langchain/vectorstores/hnswlib";
import { OpenAIEmbeddings } from "langchain/embeddings/openai";
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
import * as fs from "fs";

// Initialize the LLM to use to answer the question.
const model = new OpenAI({});
const text = fs.readFileSync("state_of_the_union.txt", "utf8");
const textSplitter = new RecursiveCharacterTextSplitter({ chunkSize: 1000 });
const docs = await textSplitter.createDocuments([text]);

// Create a vector store from the documents.
const vectorStore = await HNSWLib.fromDocuments(docs, new OpenAIEmbeddings());

// Initialize a retriever wrapper around the vector store
const vectorStoreRetriever = vectorStore.asRetriever();

const docs = retriever.getRelevantDocuments("what did he say about ketanji brown jackson");
```

## Configuration

You can specify a maximum number of documents to retrieve as well as a vector store-specific filter to use when retrieving.


```typescript
// Return up to 2 documents with `metadataField` set to `"value"`
const retriever = vectorStore.asRetriever(2, { metadataField: "value" });

const docs = retriever.getRelevantDocuments("what did he say about ketanji brown jackson");
```
