WeaviateEx.API.Aliases (WeaviateEx v0.7.4)
View SourceCollection aliases API for Weaviate.
Aliases allow you to create alternative names for collections, enabling zero-downtime collection updates and blue-green deployments.
Requires Weaviate v1.32.0 or later.
Use Cases
- Zero-downtime updates: Create a new collection, populate it, then update the alias to point to the new collection
- Blue-green deployments: Switch between "blue" and "green" collections instantly
- Semantic naming: Use descriptive alias names while keeping collection names versioned
Examples
# Create an alias
{:ok, _} = Aliases.create(client, "articles", "Article_v1")
# List all aliases
{:ok, aliases} = Aliases.list(client)
# Update alias to point to new collection
{:ok, _} = Aliases.update(client, "articles", "Article_v2")
# Check if alias exists
{:ok, true} = Aliases.exists?(client, "articles")
# Get alias details
{:ok, alias_info} = Aliases.get(client, "articles")
# => %Alias{alias: "articles", collection: "Article_v2"}
# Delete alias (collection remains)
{:ok, true} = Aliases.delete(client, "articles")
Summary
Functions
Create a new alias for a collection.
Delete an alias.
Check if an alias exists.
Get an alias by name.
List all aliases.
Get the minimum Weaviate version required for aliases.
Update an alias to point to a different collection.
Functions
@spec create(WeaviateEx.Client.t(), String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, term()}
Create a new alias for a collection.
Parameters
client- WeaviateEx clientalias_name- Name for the aliastarget_collection- Name of the collection to alias
Examples
{:ok, _} = Aliases.create(client, "articles", "Article")
# With options
{:ok, _} = Aliases.create(client, "articles", "Article", timeout: 30_000)
@spec delete(WeaviateEx.Client.t(), String.t(), keyword()) :: {:ok, boolean()} | {:error, term()}
Delete an alias.
The underlying collection is not affected.
Parameters
client- WeaviateEx clientalias_name- Name of the alias to delete
Returns
{:ok, true}- Alias was deleted{:ok, false}- Alias did not exist
Examples
{:ok, true} = Aliases.delete(client, "articles")
@spec exists?(WeaviateEx.Client.t(), String.t(), keyword()) :: {:ok, boolean()} | {:error, term()}
Check if an alias exists.
Parameters
client- WeaviateEx clientalias_name- Name of the alias to check
Returns
{:ok, true}- Alias exists{:ok, false}- Alias does not exist
Examples
{:ok, true} = Aliases.exists?(client, "articles")
@spec get(WeaviateEx.Client.t(), String.t(), keyword()) :: {:ok, WeaviateEx.API.Aliases.Alias.t() | nil} | {:error, term()}
Get an alias by name.
Parameters
client- WeaviateEx clientalias_name- Name of the alias to get
Returns
{:ok, %Alias{}}- Alias found{:ok, nil}- Alias not found
Examples
{:ok, alias_info} = Aliases.get(client, "articles")
# => %Alias{alias: "articles", collection: "Article"}
@spec list( WeaviateEx.Client.t(), keyword() ) :: {:ok, [WeaviateEx.API.Aliases.Alias.t()]} | {:error, term()}
List all aliases.
Parameters
client- WeaviateEx clientopts- Options:collection- Filter by collection name
Returns
{:ok, [%Alias{}]}- List of aliases
Examples
# List all aliases
{:ok, aliases} = Aliases.list(client)
# List aliases for a specific collection
{:ok, aliases} = Aliases.list(client, collection: "Article")
@spec minimum_version() :: String.t()
Get the minimum Weaviate version required for aliases.
Examples
Aliases.minimum_version()
# => "1.32.0"
@spec update(WeaviateEx.Client.t(), String.t(), String.t(), keyword()) :: {:ok, boolean()} | {:error, term()}
Update an alias to point to a different collection.
Parameters
client- WeaviateEx clientalias_name- Name of the alias to updatenew_target_collection- Name of the new target collection
Returns
{:ok, true}- Alias was updated{:ok, false}- Alias did not exist
Examples
{:ok, true} = Aliases.update(client, "articles", "Article_v2")