Meili.Index (Meili v0.2.0)

Copy Markdown View Source

Manages Meilisearch indexes.

Summary

Functions

Triggers compaction of a specific index.

Triggers compaction of a specific index, raising on error.

Creates a new index, raising on error.

Deletes an index, raising on error.

Retrieves a single index.

Retrieves a single index, raising on error.

Lists all indexes, raising on error.

Gets stats of a specific index.

Gets stats of a specific index, raising on error.

Returns a lazy stream of indexes.

Swaps the contents of two or more indexes.

Swaps the contents of indexes, raising on error.

Updates an index (currently, only the primaryKey can be updated).

Updates an index, raising on error.

Functions

compact(client_or_uid, uid_or_nil \\ nil)

@spec compact(Meili.Client.t() | String.t(), String.t() | nil) ::
  {:ok, map()} | {:error, Meili.Error.t()}

Triggers compaction of a specific index.

Examples

Meili.Index.compact("movies")
Meili.Index.compact(client, "movies")

compact!(client_or_uid, uid_or_nil \\ nil)

@spec compact!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()

Triggers compaction of a specific index, raising on error.

Examples

Meili.Index.compact!("movies")
Meili.Index.compact!(client, "movies")

create(client_or_uid, uid_or_opts \\ [], opts \\ [])

@spec create(
  Meili.Client.t() | String.t(),
  String.t() | Keyword.t() | map(),
  Keyword.t() | map()
) :: {:ok, map()} | {:error, Meili.Error.t()}

Creates a new index.

Options can be a primary key string, a keyword list, or a map.

Examples

Meili.Index.create("movies")
Meili.Index.create("movies", "id")
Meili.Index.create("movies", primary_key: "id")
Meili.Index.create(client, "movies", primary_key: "id")

create!(client_or_uid, uid_or_opts \\ [], opts \\ [])

@spec create!(
  Meili.Client.t() | String.t(),
  String.t() | Keyword.t() | map(),
  Keyword.t() | map()
) :: map() | no_return()

Creates a new index, raising on error.

Examples

Meili.Index.create!("movies")
Meili.Index.create!("movies", "id")
Meili.Index.create!("movies", primary_key: "id")
Meili.Index.create!(client, "movies", primary_key: "id")

delete(client_or_uid, uid_or_nil \\ nil)

@spec delete(Meili.Client.t() | String.t(), String.t() | nil) ::
  {:ok, map()} | {:error, Meili.Error.t()}

Deletes an index.

Examples

Meili.Index.delete("movies")
Meili.Index.delete(client, "movies")

delete!(client_or_uid, uid_or_nil \\ nil)

@spec delete!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()

Deletes an index, raising on error.

Examples

Meili.Index.delete!("movies")
Meili.Index.delete!(client, "movies")

get(client_or_uid, uid_or_nil \\ nil)

@spec get(Meili.Client.t() | String.t(), String.t() | nil) ::
  {:ok, map()} | {:error, Meili.Error.t()}

Retrieves a single index.

Examples

Meili.Index.get("movies")
Meili.Index.get(client, "movies")

get!(client_or_uid, uid_or_nil \\ nil)

@spec get!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()

Retrieves a single index, raising on error.

Examples

Meili.Index.get!("movies")
Meili.Index.get!(client, "movies")

list(client_or_opts \\ nil, opts \\ [])

@spec list(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) ::
  {:ok, list() | map()} | {:error, Meili.Error.t()}

Lists all indexes.

Supports optional query params:

  • limit: The maximum number of indexes to return.
  • offset: The number of indexes to skip.

Examples

Meili.Index.list()
Meili.Index.list(limit: 10)
Meili.Index.list(client, limit: 10)

list!(client_or_opts \\ nil, opts \\ [])

@spec list!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) ::
  list() | map() | no_return()

Lists all indexes, raising on error.

Examples

Meili.Index.list!()
Meili.Index.list!(limit: 10)
Meili.Index.list!(client, limit: 10)

stats(client_or_uid, uid_or_nil \\ nil)

@spec stats(Meili.Client.t() | String.t(), String.t() | nil) ::
  {:ok, map()} | {:error, Meili.Error.t()}

Gets stats of a specific index.

Examples

Meili.Index.stats("movies")
Meili.Index.stats(client, "movies")

stats!(client_or_uid, uid_or_nil \\ nil)

@spec stats!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()

Gets stats of a specific index, raising on error.

Examples

Meili.Index.stats!("movies")
Meili.Index.stats!(client, "movies")

stream(client_or_opts \\ [], opts \\ [])

@spec stream(Meili.Client.t() | Keyword.t(), Keyword.t()) :: Enumerable.t()

Returns a lazy stream of indexes.

It automatically handles pagination internally.

Options

  • limit: The page size (defaults to 1000).

Examples

Meili.Index.stream()
|> Stream.map(& &1["uid"])
|> Enum.to_list()

swap(client_or_indexes, indexes_or_nil \\ nil)

@spec swap(Meili.Client.t() | [map()], [map()] | nil) ::
  {:ok, map()} | {:error, Meili.Error.t()}

Swaps the contents of two or more indexes.

Examples

Meili.Index.swap([%{indexes: ["movies_a", "movies_b"]}])
Meili.Index.swap(client, [%{indexes: ["movies_a", "movies_b"]}])

swap!(client_or_indexes, indexes_or_nil \\ nil)

@spec swap!(Meili.Client.t() | [map()], [map()] | nil) :: map() | no_return()

Swaps the contents of indexes, raising on error.

Examples

Meili.Index.swap!([%{indexes: ["movies_a", "movies_b"]}])
Meili.Index.swap!(client, [%{indexes: ["movies_a", "movies_b"]}])

update(client_or_uid, uid_or_opts \\ [], opts \\ [])

@spec update(
  Meili.Client.t() | String.t(),
  String.t() | Keyword.t() | map(),
  Keyword.t() | map()
) :: {:ok, map()} | {:error, Meili.Error.t()}

Updates an index (currently, only the primaryKey can be updated).

Examples

Meili.Index.update("movies", "new_id")
Meili.Index.update("movies", primary_key: "new_id")
Meili.Index.update(client, "movies", primary_key: "new_id")

update!(client_or_uid, uid_or_opts \\ [], opts \\ [])

@spec update!(
  Meili.Client.t() | String.t(),
  String.t() | Keyword.t() | map(),
  Keyword.t() | map()
) :: map() | no_return()

Updates an index, raising on error.

Examples

Meili.Index.update!("movies", "new_id")
Meili.Index.update!("movies", primary_key: "new_id")
Meili.Index.update!(client, "movies", primary_key: "new_id")