文档存储 文档存储包含已摄入的文档块,我们称之为“节点”对象。 有关更多详细信息,请参阅API参考

简单文档存储

默认情况下,SimpleDocumentStoreNode对象存储在内存中。 可以通过调用docstore.persist()(和SimpleDocumentStore.from_persist_path(...))将它们持久化到(和从)磁盘。

MongoDB文档存储

我们支持MongoDB作为替代文档存储后端,在摄入Node对象时将数据持久化。

from llama_index.storage.docstore import MongoDocumentStore
from llama_index.node_parser import SimpleNodeParser

# 创建解析器并将文档解析为节点
parser = SimpleNodeParser()
nodes = parser.get_nodes_from_documents(documents)

# 创建(或加载)docstore并添加节点
docstore = MongoDocumentStore.from_uri(uri="<mongodb+srv://...>")
docstore.add_documents(nodes)

# 创建存储上下文
storage_context = StorageContext.from_defaults(docstore=docstore)

# 构建索引
index = GPTVectorStoreIndex(nodes, storage_context=storage_context)

在底层,MongoDocumentStore连接到固定的MongoDB数据库,并为您的节点初始化新的集合(或加载现有集合)。

注意:在实例化MongoDocumentStore时,您可以配置db_namenamespace,否则它们默认为db_name="db_docstore"namespace="docstore"

请注意,使用MongoDocumentStore时不需要调用storage_context.persist()(或docstore.persist()),因为数据默认情况下会被持久化。

您可以通过重新使用现有的db_namecollection_name来重新连接到MongoDB集合并重新加载索引。