An idiomatic, high-performance Meilisearch client for Elixir.
Summary
Functions
Builds a custom Meili.Client instance with the given options.
Builds a Meili.Client from the global application environment.
See Meili.Document.get/4.
Functions
@spec add_documents( Meili.Client.t() | String.t(), String.t() | [map()], [map()] | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec cancel_tasks(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Task.cancel/2.
@spec cancel_tasks!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: map() | no_return()
See Meili.Task.cancel!/2.
@spec chat_completions( Meili.Client.t() | String.t(), String.t() | map() | nil, map() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec client(Keyword.t() | map()) :: Meili.Client.t()
Builds a custom Meili.Client instance with the given options.
Options
:urlor:endpoint- The Meilisearch base URL (default:http://localhost:7700).:keyor:api_key- The API key or master key for authentication.:req_options- Custom configuration options passed directly toReq.new/1.
Examples
client = Meili.client(url: "http://localhost:7700", key: "secret-key")
@spec compact_index(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec compact_index!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec create_dump(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Dump.create/1.
@spec create_dump!(Meili.Client.t() | nil) :: map() | no_return()
See Meili.Dump.create!/1.
@spec create_export( Meili.Client.t() | map() | Keyword.t(), map() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec create_index( Meili.Client.t() | String.t(), String.t() | Keyword.t() | map(), Keyword.t() | map() ) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Index.create/3.
@spec create_key(Meili.Client.t() | map() | Keyword.t(), map() | Keyword.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Key.create/2.
@spec create_key!(Meili.Client.t() | map() | Keyword.t(), map() | Keyword.t() | nil) :: map() | no_return()
See Meili.Key.create!/2.
@spec create_snapshot(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec create_snapshot!(Meili.Client.t() | nil) :: map() | no_return()
@spec create_webhook(Meili.Client.t() | map() | list(), map() | list() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
@spec default_client() :: Meili.Client.t()
Builds a Meili.Client from the global application environment.
Examples
client = Meili.default_client()
@spec delete_all_documents(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec delete_all_documents!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec delete_document( Meili.Client.t() | String.t(), String.t() | integer(), String.t() | integer() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec delete_documents_batch( Meili.Client.t() | String.t(), String.t() | list(), list() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec delete_dynamic_search_rule(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
@spec delete_dynamic_search_rule!(Meili.Client.t() | String.t(), String.t() | nil) :: term() | no_return()
@spec delete_index(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Index.delete/2.
@spec delete_index!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec delete_key(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
See Meili.Key.delete/2.
@spec delete_key!(Meili.Client.t() | String.t(), String.t() | nil) :: term() | no_return()
See Meili.Key.delete!/2.
@spec delete_tasks(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Task.delete/2.
@spec delete_tasks!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: map() | no_return()
See Meili.Task.delete!/2.
@spec delete_webhook(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
@spec delete_webhook!(Meili.Client.t() | String.t(), String.t() | nil) :: term() | no_return()
@spec edit_documents( Meili.Client.t() | String.t(), String.t() | map(), map() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec facet_search( Meili.Client.t() | String.t(), String.t(), String.t() | nil, String.t() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec get_batch( Meili.Client.t() | integer() | String.t(), integer() | String.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Batch.get/2.
@spec get_batch!( Meili.Client.t() | integer() | String.t(), integer() | String.t() | nil ) :: map() | no_return()
See Meili.Batch.get!/2.
@spec get_chat_settings(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec get_chat_settings!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec get_document( Meili.Client.t() | String.t(), String.t() | integer(), String.t() | integer() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Document.get/4.
@spec get_dynamic_search_rule(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec get_dynamic_search_rule!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec get_experimental_features(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Features.get/1.
@spec get_experimental_features!(Meili.Client.t() | nil) :: map() | no_return()
@spec get_index(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Index.get/2.
@spec get_index!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
See Meili.Index.get!/2.
@spec get_key(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Key.get/2.
@spec get_key!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
See Meili.Key.get!/2.
@spec get_network(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Network.get/1.
@spec get_network!(Meili.Client.t() | nil) :: map() | no_return()
See Meili.Network.get!/1.
@spec get_settings(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Settings.get/2.
@spec get_settings!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec get_task( Meili.Client.t() | integer() | String.t(), integer() | String.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Task.get/2.
@spec get_task!( Meili.Client.t() | integer() | String.t(), integer() | String.t() | nil ) :: map() | no_return()
See Meili.Task.get!/2.
@spec get_webhook(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
See Meili.Webhook.get/2.
@spec get_webhook!(Meili.Client.t() | String.t(), String.t() | nil) :: term() | no_return()
See Meili.Webhook.get!/2.
@spec health(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec health!(Meili.Client.t() | nil) :: map() | no_return()
@spec index_stats(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Index.stats/2.
@spec index_stats!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
See Meili.Index.stats!/2.
@spec list_batches(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Batch.list/2.
@spec list_batches!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: map() | no_return()
See Meili.Batch.list!/2.
@spec list_documents( Meili.Client.t() | String.t(), String.t() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec list_dynamic_search_rules(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec list_dynamic_search_rules!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: map() | no_return()
@spec list_indexes(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, list() | map()} | {:error, Meili.Error.t()}
See Meili.Index.list/2.
@spec list_indexes!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: list() | map() | no_return()
See Meili.Index.list!/2.
@spec list_keys(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Key.list/2.
@spec list_keys!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: map() | no_return()
See Meili.Key.list!/2.
@spec list_tasks(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Task.list/2.
@spec list_tasks!(Meili.Client.t() | Keyword.t() | nil, Keyword.t()) :: map() | no_return()
See Meili.Task.list!/2.
@spec list_webhooks(Meili.Client.t() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
See Meili.Webhook.list/1.
@spec list_webhooks!(Meili.Client.t() | nil) :: term() | no_return()
@spec multi_search(Meili.Client.t() | [map()], [map()] | Keyword.t(), Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec reset_chat_settings(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, term()} | {:error, Meili.Error.t()}
@spec reset_chat_settings!(Meili.Client.t() | String.t(), String.t() | nil) :: term() | no_return()
@spec reset_settings(Meili.Client.t() | String.t(), String.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec reset_settings!(Meili.Client.t() | String.t(), String.t() | nil) :: map() | no_return()
@spec search( Meili.Client.t() | String.t(), String.t() | map(), String.t() | Keyword.t() | map(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec search_similar( Meili.Client.t() | String.t(), String.t() | map(), map() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec stats(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Health.stats/1.
@spec stats!(Meili.Client.t() | nil) :: map() | no_return()
@spec stream_documents( Meili.Client.t() | String.t(), String.t() | Keyword.t(), Keyword.t() ) :: Enumerable.t()
@spec stream_indexes(Meili.Client.t() | Keyword.t(), Keyword.t()) :: Enumerable.t()
See Meili.Index.stream/2.
@spec swap_indexes(Meili.Client.t() | [map()], [map()] | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Index.swap/2.
@spec swap_indexes!(Meili.Client.t() | [map()], [map()] | nil) :: map() | no_return()
See Meili.Index.swap!/2.
@spec update_chat_settings( Meili.Client.t() | String.t(), String.t() | map() | Keyword.t() | nil, map() | Keyword.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec update_documents( Meili.Client.t() | String.t(), String.t() | [map()], [map()] | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec update_dynamic_search_rule( Meili.Client.t() | String.t(), String.t() | map() | Keyword.t() | nil, map() | Keyword.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec update_experimental_features( Meili.Client.t() | map() | Keyword.t(), map() | Keyword.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec update_index( Meili.Client.t() | String.t(), String.t() | Keyword.t() | map(), Keyword.t() | map() ) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Index.update/3.
@spec update_key( Meili.Client.t() | String.t(), String.t() | map() | Keyword.t() | nil, map() | Keyword.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
See Meili.Key.update/3.
@spec update_key!( Meili.Client.t() | String.t(), String.t() | map() | Keyword.t() | nil, map() | Keyword.t() | nil ) :: map() | no_return()
See Meili.Key.update!/3.
@spec update_network( Meili.Client.t() | map() | Keyword.t(), map() | Keyword.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec update_settings( Meili.Client.t() | String.t(), String.t() | map() | Keyword.t() | nil, map() | Keyword.t() | nil ) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec update_webhook( Meili.Client.t() | String.t(), String.t() | map() | list() | nil, map() | list() | nil ) :: {:ok, term()} | {:error, Meili.Error.t()}
@spec version(Meili.Client.t() | nil) :: {:ok, map()} | {:error, Meili.Error.t()}
@spec version!(Meili.Client.t() | nil) :: map() | no_return()
@spec wait_for_task( Meili.Client.t() | integer() | String.t(), integer() | String.t() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, :timeout | Meili.Error.t()}
@spec wait_for_tasks( Meili.Client.t() | Keyword.t() | nil, Keyword.t() ) :: {:ok, :completed} | {:error, :timeout | Meili.Error.t()}
@spec wait_for_tasks!( Meili.Client.t() | Keyword.t() | nil, Keyword.t() ) :: :completed | no_return()