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

如何通过Langchain删除Google匹配引擎索引中的数据点

解决Langchain Google Cloud Matching Engine数据删除问题

Langchain的MatchingEngine向量存储集成目前没有直接封装单个数据点的删除方法,这和底层Google Cloud Matching Engine的索引特性有关,以下分两种场景给出解决方案:

场景1:使用不可变(标准)索引

Google Cloud Matching Engine的标准索引是不可变的,一旦创建无法直接修改或删除数据点。要删除数据只能通过重新构建索引:

  • 维护一份原始数据源的副本(比如存在BigQuery、本地文件或数据库中)
  • 从副本中过滤掉需要删除的目标数据点
  • 基于过滤后的数据集重新创建索引,并部署新的端点替换旧端点

场景2:使用可更新索引

如果创建索引时指定了可更新类型(index_update_method: "STREAM_UPDATE"),可以通过Google Cloud原生API直接删除单个数据点,步骤如下:

1. 确保索引为可更新类型

创建索引时(无论是GCP控制台还是API),需设置索引更新方式为STREAM_UPDATE,这样才支持数据点的增删改操作。

2. 使用GCP原生客户端执行删除

Langchain暂未封装该操作,需直接使用google-cloud-aiplatform库调用API:

首先安装依赖:

pip install google-cloud-aiplatform

然后编写删除代码:

from google.cloud import aiplatform

# 初始化客户端,替换为你的项目ID和区域
aiplatform.init(project="your-project-id", location="us-central1")

# 替换为你的索引完整资源名称
index_resource_name = "projects/your-project-id/locations/us-central1/indexes/your-index-id"
index = aiplatform.MatchingEngineIndex(index_name=index_resource_name)

# 传入要删除的数据点ID列表,支持批量删除
index.delete_datapoints(datapoint_ids=["target-datapoint-id-1", "target-datapoint-id-2"])

注意事项

  • 可更新索引的创建成本和延迟略高于标准索引,需根据业务需求权衡
  • 删除操作后,索引的更新是异步的,需等待片刻后再进行查询才能看到效果

内容的提问来源于stack exchange,提问作者Sadanan Arsaibun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:42:40