Skip to main content
Databricks 向量搜索 是一个无服务器相似度搜索引擎,允许您将数据(包括元数据)的向量表示存储在向量数据库中。通过 Vector Search,您可以从由 Unity Catalog 管理的 Delta 表创建自动更新的向量搜索索引,并通过简单 API 查询以返回最相似的向量。 本笔记本演示如何使用 LangChain 与 Databricks 向量搜索结合。

配置

访问 Databricks 模型需要创建 Databricks 账户、设置凭据(仅在非 Databricks 工作区时需要)并安装所需包。

凭据(仅在非 databricks 工作区时需要)

如果您在 Databricks 内运行 LangChain 应用,可以跳过此步骤。 否则,需要手动将 Databricks 工作区主机名和个性化访问令牌设置为 DATABRICKS_HOST 和 DATABRICKS_TOKEN 环境变量。关于如何获取访问令牌的详细信息,请参考 认证文档。

安装

LangChain Databricks 集成位于 databricks-langchain 包中。

创建向量搜索端点及索引(如尚未创建)

本节将使用客户端 SDK 创建 Databricks 向量搜索端点和索引。 如果您已创建端点和索引,可以跳过本节直接进入 “实例化” 部分。 首先实例化 Databricks VectorSearch 客户端:
接下来,我们将创建一个新的 VectorSearch 端点。
最后,我们将创建一个可查询的索引。Databricks Vector Search 支持两种索引类型,而 DatabricksVectorSearch 类支持这两种场景。
  • Delta 同步索引 会自动与源 Delta 表同步,随底层数据变化自动增量更新索引。
  • 直接向量访问索引 支持直接读写向量和元数据。用户需通过 REST API 或 Python SDK 更新该表。
此外,对于 Delta 同步索引,您可以选择使用 Databricks 管理的嵌入模型或通过 LangChain 嵌入类实现的自定义嵌入。 以下代码创建一个 直接访问 索引。如需创建其他类型索引的详细说明,请参考 Databricks 文档。

实例化

根据索引是否使用 Databricks 管理的嵌入模型或 LangChain 嵌入类(即自定嵌入模型),DatabricksVectorSearch 的实例化方式有所不同。 如果您使用 Delta 同步索引并搭配 Databricks 管理的嵌入模型:
如果您使用直接访问索引或搭配自定嵌入模型的 Delta 同步索引,还需提供嵌入模型和源表中的文本列用于生成嵌入:

管理向量存储

向向量存储添加条目

注意:仅支持通过 add_documents 方法向 直接访问 索引添加条目。

从向量存储删除条目

注意:仅支持通过 delete 方法向 直接访问 索引删除条目。

查询向量存储

在您的链或智能体运行时,一旦创建向量存储并添加了相关文档,您很可能需要在运行时查询它。

直接查询

执行简单相似度搜索如下:
注意:默认相似度搜索仅返回主键和文本列。若需获取文档关联的定制元数据,请在 columns 参数中初始化向量存储时传入额外列。
若需执行相似度搜索并获取对应得分,可运行:

通过检索器查询

您还可以将向量存储转换为检索器以更便于在链中调用。

用于检索增强生成

关于如何使用此向量存储实现检索增强生成(RAG),请参考以下章节:

API 参考

要查看 DatabricksVectorSearch 所有功能及配置的详细文档,请访问 API 参考。
官方原文:src/oss/python/integrations/vectorstores/databricks_vector_search.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026