AsyncCockroachDBVectorStore 是一个使用 CockroachDB 分布式 SQL 数据库(具有原生向量支持)的 LangChain 向量存储实现。
本笔记本介绍如何使用 AsyncCockroachDBVectorStore API。
代码位于集成包中:langchain-cockroachdb。
概述
CockroachDB 是一个分布式 SQL 数据库,提供:- 原生向量支持,使用
VECTOR数据类型(v24.2+) - 分布式 C-SPANN 索引,用于近似最近邻(ANN)搜索(v25.2+)
- 默认可序列化隔离,确保事务正确性
- 水平可扩展性,支持自动分片和复制
- PostgreSQL 线路兼容,便于采用
向量工作负载的关键优势
- 分布式向量索引:C-SPANN 索引自动在集群中分片
- 多租户支持:索引中的前缀列实现高效的租户隔离
- 强一致性:可序列化事务防止数据异常
- 高可用性:自动故障转移,无数据丢失
设置
安装
安装集成库langchain-cockroachdb。
CockroachDB 集群
您需要一个支持向量的 CockroachDB 集群(v24.2+)。选择一个选项:选项 1:CockroachDB Cloud(推荐)
- 在 cockroachlabs.cloud 注册
- 创建一个免费集群
- 从集群详情页面获取连接字符串
选项 2:Docker(开发环境)
选项 3:本地二进制文件
从 cockroachlabs.com/docs/releases 下载设置连接值
初始化
创建连接引擎
CockroachDBEngine 管理到集群的连接池:
初始化表
创建具有适当模式的表用于向量存储:创建嵌入实例
使用任何 LangChain 嵌入模型。初始化向量存储
管理向量存储
添加文档
添加带有元数据的文档:添加文本
直接添加文本,无需结构化为文档:删除文档
按 ID 删除文档:查询向量存储
相似性搜索
使用自然语言搜索相似文档:带分数的相似性搜索
获取结果的相关性分数:按向量搜索
使用预计算的嵌入向量进行搜索:最大边际相关性(MMR)搜索
检索平衡相关性和多样性的多样化结果:向量索引
使用 CockroachDB 的 C-SPANN 向量索引加速相似性搜索(需要 v25.2+)。什么是 C-SPANN?
C-SPANN(CockroachDB Space Partition Approximate Nearest Neighbor)是一个分布式向量索引,它:- 自动在集群节点间分片
- 在大规模下提供亚秒级查询性能
- 支持余弦、欧几里得(L2)和内积距离
- 与前缀列配合用于多租户架构
创建向量索引
距离策略
选择与您的用例匹配的距离度量:调整索引参数
调整分区大小以优化性能:查询时调整
在查询时调整搜索参数:删除索引
移除向量索引:元数据过滤
使用元数据字段过滤相似性搜索。支持的运算符
过滤示例
同步接口
所有异步方法都有使用同步包装器的同步等效方法:用于检索增强生成(RAG)的用法
有关使用 CockroachDB 作为向量存储实现 RAG 的信息,请参阅 LangChain RAG 教程。CockroachDB 向量存储可以在这些模式中替代任何其他向量存储。清理
删除向量存储表:API 参考
有关所有功能和配置的详细文档:附加资源
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

