集合别名
在
v1.32 中添加集合别名允许您为集合创建替代名称。这对于在不中断服务的情况下迁移集合、进行 A/B 测试或为集合提供更方便的名称非常有用。别名充当对集合的引用 - 当您使用别名查询和管理对象时,Weaviate 会自动将请求路由到目标集合。
集合别名的使用
创建别名
要创建别名,请指定别名名称和它应指向的目标集合。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 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 实例中的所有别名。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 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}")
列出特定集合的别名
获取指向特定集合的所有别名。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 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}")
获取别名详细信息
检索有关特定别名的信息。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 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}")
更新别名
更改别名指向的目标集合。此操作是原子的,并提供集合之间即时切换。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 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")
用例:零停机时间迁移
更新别名对于迁移尤其有用
- 创建具有更新的集合定义的新的集合
- 将数据导入到新的集合
- 更新别名以指向新的集合
- 继续使用别名 - 所有对它的查询现在都定向到新的集合
有关如何执行迁移的代码示例,请访问 教程:使用别名迁移集合
删除别名
删除一个别名。这只会删除别名指针,而不会删除基础集合。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
# Delete an alias (the underlying collection remains)
client.alias.delete(alias_name="ArticlesAlias")
注意
- 删除集合不会自动删除指向它的别名
在操作中使用别名
创建后,别名可以在所有与对象相关的操作中使用,例如数据导入和查询,代替集合名称。
更多信息文档中的代码片段反映了最新的客户端库和 Weaviate 数据库版本。请查看 发行说明 以获取特定版本。
如果某个片段无法工作或您有任何反馈,请打开一个 GitHub issue。
如果某个片段无法工作或您有任何反馈,请打开一个 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']}")
更多资源
问题和反馈
如果您有任何问题或反馈,请在 用户论坛 中告诉我们。
