Performs search operations against Meilisearch indexes.
Summary
Functions
Searches for facet values in a specific index.
Searches for facet values, raising on error.
Performs search queries across multiple indexes.
Performs multi-search queries, raising on error.
Performs a search query on a specific index.
Performs a search query, raising on error.
Searches for documents similar to a specific document.
Searches for similar documents, raising on error.
Functions
@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()}
Searches for facet values in a specific index.
Examples
Meili.Search.facet_search("movies", "genre", "sci-fi")
Meili.Search.facet_search(client, "movies", "genre", "sci-fi", filter: "rating > 4")
@spec facet_search!( Meili.Client.t() | String.t(), String.t(), String.t() | nil, String.t() | Keyword.t(), Keyword.t() ) :: map() | no_return()
Searches for facet values, raising on error.
Examples
Meili.Search.facet_search!("movies", "genre", "sci-fi")
Meili.Search.facet_search!(client, "movies", "genre", "sci-fi")
@spec multi_search(Meili.Client.t() | [map()], [map()] | Keyword.t(), Keyword.t()) :: {:ok, map()} | {:error, Meili.Error.t()}
Performs search queries across multiple indexes.
Examples
queries = [
%{index_uid: "movies", q: "star wars", limit: 5},
%{index_uid: "books", q: "dune", limit: 5}
]
Meili.Search.multi_search(queries)
Meili.Search.multi_search(client, queries)
@spec multi_search!(Meili.Client.t() | [map()], [map()] | Keyword.t(), Keyword.t()) :: map() | no_return()
Performs multi-search queries, raising on error.
Examples
queries = [
%{index_uid: "movies", q: "star wars"},
%{index_uid: "books", q: "dune"}
]
Meili.Search.multi_search!(queries)
Meili.Search.multi_search!(client, queries)
@spec search( Meili.Client.t() | String.t(), String.t() | map(), String.t() | Keyword.t() | map(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
Performs a search query on a specific index.
Automatically converts snake_case search parameters to camelCase.
Options
limit: Max number of results.offset: Number of results to skip.filter: Filter expression.facets: Facet attributes.sort: Sort attributes.attributes_to_retrieve/attributesToRetrieve: Attributes to return.attributes_to_highlight/attributesToHighlight: Attributes to highlight.show_ranking_score/showRankingScore: Include relevancy score.hybrid: Hybrid search configuration (e.g. semantic/lexical ratio).
Examples
Meili.Search.search("movies", "star wars", limit: 5)
Meili.Search.search(client, "movies", "star wars", attributes_to_retrieve: ["title"])
@spec search!( Meili.Client.t() | String.t(), String.t() | map(), String.t() | Keyword.t() | map(), Keyword.t() ) :: map() | no_return()
Performs a search query, raising on error.
Examples
Meili.Search.search!("movies", "star wars", limit: 5)
Meili.Search.search!(client, "movies", "star wars", limit: 5)
@spec similar( Meili.Client.t() | String.t(), String.t() | map(), map() | Keyword.t(), Keyword.t() ) :: {:ok, map()} | {:error, Meili.Error.t()}
Searches for documents similar to a specific document.
Examples
Meili.Search.similar("movies", %{id: "1", embedder: "default"})
Meili.Search.similar(client, "movies", %{id: "1", embedder: "default"}, limit: 5)
@spec similar!( Meili.Client.t() | String.t(), String.t() | map(), map() | Keyword.t(), Keyword.t() ) :: map() | no_return()
Searches for similar documents, raising on error.
Examples
Meili.Search.similar!("movies", %{id: "1", embedder: "default"})
Meili.Search.similar!(client, "movies", %{id: "1", embedder: "default"})