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

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

部署

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

Weaviate Agents

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

Weaviate Cloud

在云端管理和扩展 Weaviate

更多资源

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

需要帮助?

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

集合别名

v1.32 中添加

集合别名允许您为集合创建替代名称。这对于在不中断服务的情况下迁移集合、进行 A/B 测试或为集合提供更方便的名称非常有用。别名充当对集合的引用 - 当您使用别名查询和管理对象时,Weaviate 会自动将请求路由到目标集合。

集合别名的使用

Weaviate 会自动将别名请求路由到目标集合,用于对象相关操作。您可以在任何需要集合名称的地方使用别名,例如:

创建别名

要创建别名,请指定别名名称和它应指向的目标集合。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Create a collection first
client.collections.create(
name="Articles",
vector_config=wvc.config.Configure.Vectors.self_provided(),
properties=[
wvc.config.Property(name="title", data_type=wvc.config.DataType.TEXT),
wvc.config.Property(name="content", data_type=wvc.config.DataType.TEXT),
],
)

# Create an alias pointing to the collection
client.alias.create(alias_name="ArticlesAlias", target_collection="Articles")
注意
  • 别名名称必须唯一,并且不能与任何现有的集合或别名名称匹配
  • 多个别名可以指向同一个集合
  • 别名只能在与对象相关的操作(管理对象和查询)中代替集合名称使用

列出所有别名

检索您的 Weaviate 实例中的所有别名。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Get all aliases in the instance
all_aliases = client.alias.list_all()

for alias_name, alias_info in all_aliases.items():
print(f"Alias: {alias_info.alias} -> Collection: {alias_info.collection}")

列出特定集合的别名

获取指向特定集合的所有别名。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Get all aliases pointing to a specific collection
collection_aliases = client.alias.list_all(collection="Articles")

for alias_name, alias_info in collection_aliases.items():
print(f"Alias pointing to Articles: {alias_info.alias}")

获取别名详细信息

检索有关特定别名的信息。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Get information about a specific alias
alias_info = client.alias.get(alias_name="ArticlesAlias")

if alias_info:
print(f"Alias: {alias_info.alias}")
print(f"Target collection: {alias_info.collection}")

更新别名

更改别名指向的目标集合。此操作是原子的,并提供集合之间即时切换。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Create a new collection for migration
client.collections.create(
name="ArticlesV2",
vector_config=wvc.config.Configure.Vectors.self_provided(),
properties=[
wvc.config.Property(name="title", data_type=wvc.config.DataType.TEXT),
wvc.config.Property(name="content", data_type=wvc.config.DataType.TEXT),
wvc.config.Property(
name="author", data_type=wvc.config.DataType.TEXT
), # New field
],
)

# Update the alias to point to the new collection
success = client.alias.update(
alias_name="ArticlesAlias", new_target_collection="ArticlesV2"
)

if success:
print("Alias updated successfully")
用例:零停机时间迁移

更新别名对于迁移尤其有用

  1. 创建具有更新的集合定义的新的集合
  2. 将数据导入到新的集合
  3. 更新别名以指向新的集合
  4. 继续使用别名 - 所有对它的查询现在都定向到新的集合

有关如何执行迁移的代码示例,请访问 教程:使用别名迁移集合

删除别名

删除一个别名。这只会删除别名指针,而不会删除基础集合。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Delete an alias (the underlying collection remains)
client.alias.delete(alias_name="ArticlesAlias")
注意
  • 删除集合不会自动删除指向它的别名

在操作中使用别名

创建后,别名可以在所有与对象相关的操作中使用,例如数据导入和查询,代替集合名称。

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

如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue
# Ensure the Articles collection exists (it might have been deleted in previous examples)

client.collections.create(
name="Articles",
vector_config=wvc.config.Configure.Vectors.self_provided(),
properties=[
wvc.config.Property(name="title", data_type=wvc.config.DataType.TEXT),
wvc.config.Property(name="content", data_type=wvc.config.DataType.TEXT),
],
)
# Use the alias just like a collection name
articles = client.collections.use("ArticlesAlias")

# Insert data using the alias
articles.data.insert(
{
"title": "Using Aliases in Weaviate",
"content": "Aliases make collection management easier...",
}
)

# Query using the alias
results = articles.query.fetch_objects(limit=5)

for obj in results.objects:
print(f"Found: {obj.properties['title']}")

更多资源

问题和反馈

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