diff --git a/packages/core/src/indices/vectorStore/VectorStoreIndex.ts b/packages/core/src/indices/vectorStore/VectorStoreIndex.ts index d3153b358a7d3061c5fe4f0cc42282868da1ed4c..61479f669df5c9eba8b16814a88054f684a464a3 100644 --- a/packages/core/src/indices/vectorStore/VectorStoreIndex.ts +++ b/packages/core/src/indices/vectorStore/VectorStoreIndex.ts @@ -23,6 +23,7 @@ import { } from "../BaseIndex"; import { BaseRetriever } from "../../Retriever"; import { ResponseSynthesizer } from "../../ResponseSynthesizer"; +import { BaseDocumentStore } from "../../storage/docStore/types"; /** * The VectorStoreIndex, an index that stores the nodes only according to their vector embedings. @@ -61,7 +62,8 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> { indexStruct = await VectorStoreIndex.buildIndexFromNodes( options.nodes, serviceContext, - vectorStore + vectorStore, + docStore ); } @@ -112,7 +114,8 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> { static async buildIndexFromNodes( nodes: BaseNode[], serviceContext: ServiceContext, - vectorStore: VectorStore + vectorStore: VectorStore, + docStore: BaseDocumentStore ): Promise<IndexDict> { const embeddingResults = await this.getNodeEmbeddingResults( nodes, @@ -121,6 +124,13 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> { vectorStore.add(embeddingResults); + if (!vectorStore.storesText) { + await docStore.addDocuments( + embeddingResults.map((result) => result.node), + true + ); + } + const indexDict = new IndexDict(); for (const { node } of embeddingResults) { indexDict.addNode(node);