AsyncCockroachDBVectorStore 是使用 CockroachDB 分布式 SQL 数据库(具有原生向量支持)实现的 LangChain 向量存储实现。
本笔记本介绍如何使用 AsyncCockroachDBVectorStore API。
代码位于集成包中:langchain-cockroachdb。
概述
CockroachDB 是一个分布式 SQL 数据库,提供:- 原生向量支持,使用
VECTOR数据类型 (v24.2+) - 分布式 C-SPANN 索引,用于近似最近邻 (ANN) 搜索 (v25.2+)
- 默认 SERIALIZABLE 隔离,确保事务正确性
- 水平可扩展性,带有自动分片和复制
- PostgreSQL 线兼容,便于采用
向量工作负载的关键优势
- 分布式向量索引:C-SPANN 索引自动在您的集群上分片
- 多租户支持:索引中的前缀列可实现高效的租户隔离
- 强一致性:SERIALIZABLE 事务防止数据异常
- 高可用性:自动故障转移且无数据丢失
设置
安装
安装集成库langchain-cockroachdb。
CockroachDB 集群
您需要一个具有向量支持 (v24.2+) 的 CockroachDB 集群。选择一个选项:选项 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) 用法
要将 RAG 与 CockroachDB 作为向量存储一起实施,请参阅 LangChain RAG 教程。CockroachDB 向量存储可用于这些模式中的任何其他向量存储位置。清理
删除向量存储表:API 参考
有关所有功能和配置的详细文档:其他资源
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

