ExTypesense.Curation (ExTypesense v2.0.1)
View SourceWhile Typesense makes it really easy and intuitive to deliver great search results, sometimes you might want to promote certain documents over others. Or, you might want to exclude certain documents from a query's result set.
Using overrides, you can include or exclude specific documents for a given query.
More here: https://typesense.org/docs/latest/api/curation.html#create-or-update-an-override
Summary
Functions
Delete an override associated with a collection
Retrieve the details of a search override, given its id.
Listing all overrides associated with a given collection.
Create or update an override to promote certain documents over others. Using overrides, you can include or exclude specific documents for a given query.
Functions
@spec delete_override(String.t() | module(), String.t()) :: {:ok, OpenApiTypesense.SearchOverrideDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Delete an override associated with a collection
@spec delete_override(String.t() | module(), String.t(), keyword()) :: {:ok, OpenApiTypesense.SearchOverrideDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as delete_override/2
Options
conn
: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.delete_override("persons", "person-override", conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.delete_override("persons", "person-override", conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.delete_override(MyApp.Accounts.Person, "person-override", opts)
@spec get_override(String.t() | module(), String.t()) :: {:ok, OpenApiTypesense.SearchOverride.t()} | :error
Retrieve the details of a search override, given its id.
@spec get_override(String.t() | module(), String.t(), keyword()) :: {:ok, OpenApiTypesense.SearchOverride.t()} | :error
Same as get_override/2
Options
conn
: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.get_override("helmets", "custom-helmet", conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.get_override("helmets", "custom-helmet", conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.get_override(MyApp.Wearables.Helmet, "custom-helmet", opts)
@spec list_overrides(String.t() | module()) :: {:ok, OpenApiTypesense.SearchOverridesResponse.t()} | :error
Listing all overrides associated with a given collection.
Error
By default, ALL overrides are returned, but you can use the
offset
and limit
parameters to paginate on the listing.
Options
limit
: Limit results in paginating on collection listing.offset
: Skip a certain number of results and start after that.
@spec list_overrides( String.t() | module(), keyword() ) :: {:ok, OpenApiTypesense.SearchOverridesResponse.t()} | :error
Same as list_overrides/1.
Options
conn
: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.list_overrides("persons", limit: 10, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.list_overrides("persons", conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.list_overrides(MyApp.Accounts.Person, opts)
@spec upsert_override(String.t() | module(), String.t(), map()) :: {:ok, OpenApiTypesense.SearchOverride.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Create or update an override to promote certain documents over others. Using overrides, you can include or exclude specific documents for a given query.
Examples
iex> body = %{
...> "rule" => %{
...> "query" => "Grocter and Pamble",
...> "match" => "exact"
...> },
...> "includes" => [
...> %{"id" => "2", "position" => 44},
...> %{"id" => "4", "position" => 10}
...> ],
...> "excludes" => [
...> %{"id" => "117"}
...> ]
...> }
iex> ExTypesense.upsert_override("companies", "cust-company", body)
@spec upsert_override(String.t() | module(), String.t(), map(), keyword()) :: {:ok, OpenApiTypesense.SearchOverride.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as upsert_override/3
Options
conn
: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.upsert_override("helmets", "custom-helmet", body, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.upsert_override("helmets", "custom-helmet", body, conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.upsert_override(MyApp.Wearables.Helmet, "custom-helmet", body, opts)