跳至主要内容
前往文档
⌘U
Weaviate 数据库

使用 Weaviate 的 APIs 和工具开发 AI 应用

部署

部署、配置和维护 Weaviate 数据库

Weaviate Agents

使用 Weaviate 构建和部署智能代理

Weaviate Cloud

在云端管理和扩展 Weaviate

更多资源

集成
贡献者指南
活动 & 工作坊
Weaviate Academy

需要帮助?

Weaviate Logo询问 AI 助手⌘K
社区论坛

更新对象

Weaviate 允许部分或完全更新对象。

其他信息
对象 CRUD 操作中的集合(类)名称

集合充当命名空间,因此两个不同的集合之间可能存在重复的 ID。


在 Weaviate v1.14 之前,您可以无需指定集合名称即可操作对象。此方法已被弃用。它将在 Weaviate v2.0.0 中删除。

v1.20 开始,您可以拥有 多租户 数据集。当 multi-tenancy 启用时,需要租户名称。

始终包含集合名称,并在启用时包含租户名称。

更新对象属性

此操作仅替换指定属性的整个值,而保留未指定的属性。提供集合名称、对象 id 和要更新的属性。

如果您更新先前向量化属性的值,Weaviate 会自动重新向量化对象。 这也会重新索引更新后的对象。

但是,如果您向集合定义添加属性,Weaviate 仅向量化新对象。 当定义新属性时,Weaviate 不会重新向量化和重新索引现有对象,而仅在更新现有属性时才会重新向量化和重新索引。

py docs  API 文档
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
uuid = "..."  # replace with the id of the object you want to update

jeopardy = client.collections.use("JeopardyQuestion")
jeopardy.data.update(
uuid=uuid,
properties={
"points": 100,
}
)

更新对象向量

对象向量也可以与属性类似地更新。 对于 命名向量,以类似于 对象创建 的方式提供数据作为字典/映射。

py docs  API 文档
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
jeopardy = client.collections.use("JeopardyQuestion")
jeopardy.data.update(
uuid=uuid,
properties={
"points": 100,
},
vector=[0.12345] * 1536
)

替换整个对象

可以通过提供集合名称、id 和新对象来替换整个对象。

py docs  API 文档
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
jeopardy = client.collections.use("JeopardyQuestion")
jeopardy.data.replace(
uuid=uuid,
properties={
"answer": "Replaced",
# The other properties will be deleted
},
)

删除属性

删除或更新集合定义中的属性 尚未支持

在对象级别,您可以将对象替换为已删除这些属性或将文本属性设置为 "" 的副本。

py docs  API 文档
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
from typing import List
from weaviate import WeaviateClient

def del_props(client: WeaviateClient, uuid_to_update: str, collection_name: str, prop_names: List[str]) -> None:
collection = client.collections.use(collection_name)

# fetch the object to update
object_data = collection.query.fetch_object_by_id(uuid_to_update)
properties_to_update = object_data.properties

# remove unwanted properties
for prop_name in prop_names:
if prop_name in properties_to_update:
del properties_to_update[prop_name]

# replace the properties
collection.data.replace(
uuid=uuid_to_update,
properties=properties_to_update
)


uuid = "..." # replace with the id of the object you want to delete properties from
del_props(client, uuid, "JeopardyQuestion", ["answer"])

问题和反馈

如果您有任何问题或反馈,请在 用户论坛 中告诉我们。