You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LangChain PGVector检索集合中的全部文档?

LangChain PGVector 检索集合内全部文档的方法

LangChain PGVector支持直接检索集合内的全部文档,无需依赖向量相似度匹配,以下是两种可行的实现方式:

方法一:使用内置get()方法

PGVector类的get()方法默认返回集合内所有文档(需确保初始化时指定了正确的集合名称),也可通过空过滤条件明确指定获取全部内容。

示例代码:

from langchain.vectorstores.pgvector import PGVector
from langchain.embeddings.openai import OpenAIEmbeddings

# 初始化PGVector连接
CONNECTION_STRING = "postgresql+psycopg2://user:password@localhost:5432/dbname"
COLLECTION_NAME = "your_collection_name"

vector_store = PGVector(
    collection_name=COLLECTION_NAME,
    connection_string=CONNECTION_STRING,
    embedding_function=OpenAIEmbeddings()
)

# 检索全部文档
all_docs = vector_store.get()

# 遍历输出文档内容
for doc in all_docs["documents"]:
    print(doc)

方法二:执行自定义SQL查询

若需要更灵活的控制,可直接通过底层数据库连接执行SQL,精准获取指定集合的全部文档数据。

示例代码:

from sqlalchemy import create_engine

# 初始化数据库连接
engine = create_engine("postgresql+psycopg2://user:password@localhost:5432/dbname")
conn = engine.connect()

# 执行SQL查询目标集合的全部文档
COLLECTION_NAME = "your_collection_name"
query = f"""
SELECT document FROM langchain_pg_embedding
WHERE collection_id = (SELECT uuid FROM langchain_pg_collection WHERE name = '{COLLECTION_NAME}')
"""

result = conn.execute(query)
all_docs = [row[0] for row in result]

# 遍历输出文档内容
for doc in all_docs:
    print(doc)

# 关闭数据库连接
conn.close()

注意事项

  • 确保PostgreSQL中已存在LangChain PGVector自动创建的langchain_pg_embedding和langchain_pg_collection表
  • 替换代码中的数据库连接信息、集合名称为实际值
  • 使用OpenAI Embeddings时需配置对应的API密钥环境变量

内容的提问来源于stack exchange,提问作者João Pedro Freire Cabral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:39:56