WeaviateEx.API.Aliases (WeaviateEx v0.7.4)

View Source

Collection 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.

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

create(client, alias_name, target_collection, opts \\ [])

@spec create(WeaviateEx.Client.t(), String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, term()}

Create a new alias for a collection.

Parameters

  • client - WeaviateEx client
  • alias_name - Name for the alias
  • target_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)

delete(client, alias_name, opts \\ [])

@spec delete(WeaviateEx.Client.t(), String.t(), keyword()) ::
  {:ok, boolean()} | {:error, term()}

Delete an alias.

The underlying collection is not affected.

Parameters

  • client - WeaviateEx client
  • alias_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")

exists?(client, alias_name, opts \\ [])

@spec exists?(WeaviateEx.Client.t(), String.t(), keyword()) ::
  {:ok, boolean()} | {:error, term()}

Check if an alias exists.

Parameters

  • client - WeaviateEx client
  • alias_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")

get(client, alias_name, opts \\ [])

@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 client
  • alias_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"}

list(client, opts \\ [])

@spec list(
  WeaviateEx.Client.t(),
  keyword()
) :: {:ok, [WeaviateEx.API.Aliases.Alias.t()]} | {:error, term()}

List all aliases.

Parameters

  • client - WeaviateEx client
  • opts - 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")

minimum_version()

@spec minimum_version() :: String.t()

Get the minimum Weaviate version required for aliases.

Examples

Aliases.minimum_version()
# => "1.32.0"

update(client, alias_name, new_target_collection, opts \\ [])

@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 client
  • alias_name - Name of the alias to update
  • new_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")