概览
Google Vertex AI Vector Search 是一种全托管的高规模低延迟向量相似度检索解决方案,支持使用 Google ScaNN(可扩展最近邻)技术进行精确和近似最近邻(ANN)搜索。 Vertex AI Vector Search 提供两个版本:- Vector Search 2.0:使用 Collections 存储包含向量、元数据和内容的 Data Objects,提供统一的数据模型,操作更简便快捷。
- Vector Search 1.0:使用部署到 Endpoints 的 Indexes,文档单独存储在 Google Cloud Storage 或 Datastore 中。
- Vector Search 2.0 - 如果您使用 Collections
- Vector Search 1.0 - 如果您使用 Indexes 和 Endpoints
安装
安装 LangChain Google Vertex AI 集成包:Vector Search 2.0
Vector Search 2.0 使用 Collections 存储 Data Objects。每个 Data Object 以统一结构包含向量、元数据和内容。前提条件
-
已启用 Vertex AI API 和 Vector Search API 的 Google Cloud 项目
- 已创建 Vector Search Collection(参见创建 Collection)
-
具备适当的 IAM 权限(
Vertex AI User角色或等效权限)
创建 Collection(V2)
在使用 Vector Search 2.0 之前,您需要先创建一个 Collection。以下是创建与 LangChain 兼容的 Collection 的方法:- 向量字段必须命名为
"embedding"以匹配 LangChain 的默认值(或使用vector_field_name参数) - V2 中只有在
data_schema.properties中定义的字段才能用于过滤 - 维度应与您的嵌入模型匹配(text-embedding-005 为 768)
初始化
collection_id:您的 Vector Search Collection ID(必填)api_version:必须设置为"v2"(必填)project_id:GCP 项目 ID(必填)region:Collection 所在的 GCP 区域(必填)vector_field_name:Collection schema 中向量字段的名称(默认:"embedding")
添加文档
添加文本
搜索
基本相似度搜索
带分数的相似度搜索
按向量搜索
过滤
Vector Search 2.0 使用基于字典的查询语法过滤 Data Objects:$eq:等于$ne:不等于$lt:小于$lte:小于等于$gt:大于$gte:大于等于$and:逻辑与$or:逻辑或$not:逻辑非
删除操作
按 ID 删除
按元数据过滤删除
注意:当前 V2 API 对按元数据过滤删除存在限制。推荐的方法是:- 使用带过滤条件的
similarity_search获取文档 ID - 按 ID 删除
高级功能
Vector Search 2.0 提供了多种超越传统稠密向量搜索的高级搜索能力。语义搜索
语义搜索使用 Vertex AI 模型自动从查询文本生成嵌入向量。您的 Collection 必须在向量 schema 中配置vertex_embedding_config。
RETRIEVAL_QUERY:用于搜索查询(默认)RETRIEVAL_DOCUMENT:用于文档索引SEMANTIC_SIMILARITY:用于语义相似度任务CLASSIFICATION:用于分类任务CLUSTERING:用于聚类任务
文本搜索
文本搜索在数据字段上执行关键词/全文匹配,不使用嵌入向量。semantic_search() 或 similarity_search()。
混合搜索
混合搜索将语义搜索(自动生成嵌入向量)和文本搜索(关键词匹配)相结合,使用倒数排名融合(RRF)算法生成最优排名结果。semantic_weight越高:越侧重语义理解text_weight越高:越侧重精确关键词匹配- 等权重(默认):均衡结果
自定义向量字段名称
如果您的 Collection schema 对向量使用了自定义字段名称:其他资源
- Vector Search 2.0 概览
- Vector Search 2.0 Collections
- Vector Search 2.0 Data Objects
- Vector Search 2.0 搜索指南
- Vector Search 2.0 查询指南
- Vector Search 2.0 迁移指南
Vector Search 1.0
本文档介绍如何使用与Google Cloud Vertex AI Vector Search 向量数据库相关的功能。
Google Vertex AI Vector Search,前称 Vertex AI Matching Engine,提供业界领先的高规模低延迟向量数据库服务。这类向量数据库通常被称为向量相似度匹配或近似最近邻(ANN)服务。注意:LangChain API 要求已创建并部署好 Endpoint 和 Index。创建 Index 最长可能需要一个小时。
关于如何创建 Index,请参阅 创建 Index 并部署到 Endpoint 章节 如果您已有已部署的 Index,请跳至 从文本创建 VectorStore
创建 Index 并部署到 Endpoint
- 本节演示如何创建新的 Index 并将其部署到 Endpoint
使用 VertexAIEmbeddings 作为嵌入模型
创建空 Index
注意: 创建 Index 时,需要通过 “index_update_method” 指定更新方式,可选 “BATCH_UPDATE” 或 “STREAM_UPDATE”批量索引适用于批量更新场景,即在一段固定时间内(如每周或每月)对数据进行集中处理。流式索引适用于在新数据添加到数据存储时即时更新索引的场景,例如书店希望新库存尽快在线上展示。选择哪种类型很重要,因为配置和要求各不相同。关于配置 Index 的更多详情,请参阅官方文档
创建 Endpoint
将 Index 部署到 Endpoint
从文本创建向量存储
注意:如果您已有现成的 Index 和 Endpoint,可以使用以下代码加载创建简单向量存储(不含过滤)
可选:也可以创建向量并将文本块存储到 Datastore
创建带元数据过滤的向量存储
将向量存储用作检索器
在问答链中结合检索器使用过滤
读取、分块、向量化并索引 PDF
混合搜索
Vector Search 支持混合搜索,这是信息检索(IR)领域中一种流行的架构模式,将语义搜索和关键词搜索(也称为基于 Token 的搜索)相结合。通过混合搜索,开发者可以充分发挥两种方法的优势,有效提升搜索质量。 点击此处了解更多。 要使用混合搜索,需要拟合一个稀疏嵌入向量化器,并在 Vector Search 集成外部处理嵌入向量。 稀疏嵌入向量化器的示例是 sklearn TfidfVectorizer,也可以使用其他技术,例如 BM25。将这些文档连接 到 Claude、VSCode 等工具,通过 MCP 获取实时解答。

