update - 更新数据
update() 用于更新 collection 中的现有记录。在更新记录时,记录必须存在,否则将引发错误。
信息
仅支持在使用 Client 连接时,才能使用该接口。关于 Client 的详细介绍,参见 Client。
前提条件
-
您已经安装了 pyseekdb,有关安装 pyseekdb 的详细信息,参见 快速开始。
-
您已经连接到数据库。有关连接的详细操作参见 Client。
-
如果您使用的是客户端模式的 seekdb 或者 OceanBase 数据库,请确保连接的用户已拥有待操作的表的
UPDATE权限,查看当前用户权限的相关操作请参见 查看用户权限。如果不具备该权限,请联系管理员为您授权 ,用户授权的相关操作请参见 直接授予权限。
请求参数
update(
ids=ids,
embeddings=embeddings,
documents=documents,
metadatas=metadatas
)
| 参数 | 取值类型 | 是否必选 | 描述 | 取值示例 |
|---|---|---|---|---|
ids | string 或者 List[str] | 必选 | 需要修改的 ID。可以是单个,也可以是数组。 | item1 |
embeddings | List[float] 或者 List[List[float]] | 可选 | 新 vectors;如果提供,直接使用(忽略 embedding_function),如果不提供,可以提供 documents 来自动生成 vectors。 | [[0.9, 0.8, 0.7], [0.6, 0.5, 0.4]] |
documents | string 或者 List[str] | 可选 | 新 documents。如果没有提供 vectors,documents 将使用 collection 的 embedding_function 转换为 vectors。 | "New document text" |
metadatas | dict 或者 List[dict] | 可选 | 新 metadata。 | {"category": "AI"} |
信息
支持仅更新 metadatas。使用的 embedding_function 需要与 collection 关联。
请求示例
import pyseekdb
# Create a client
client = pyseekdb.Client()
collection = client.get_collection("my_collection")
collection1 = client.get_collection("my_collection1")
# Update single item
collection.update(
ids="item1",
metadatas={"category": "AI", "score": 98} # Update metadata only
)
# Update multiple items
collection.update(
ids=["item1", "item2"],
embeddings=[[0.9, 0.8, 0.7], [0.6, 0.5, 0.4]], # Update embeddings
documents=["Updated document 1", "Updated document 2"] # Update documents
)
# Update with documents only - embeddings auto-generated by embedding_function
# Requires: collection must have embedding_function set
collection1.update(
ids="doc1",
documents="New document text", # Embeddings will be auto-generated
metadatas={"category": "AI"}
)
返回参数
无