ExTypesense.Preset (ExTypesense v1.2.1)

View Source

Search presets allow you to store a bunch of search parameters together, and reference them by a name. You can then use this preset name when you make a search request, instead of passing all the search parameters individually in each search request.

You can then change the preset configuration on the Typesense side, to change your search parameters, without having to re-deploy your application.

More here: https://typesense.org/docs/latest/api/search.html#presets

Summary

Functions

Permanently deletes a preset, given it's name.

Same as delete_preset/2 but passes another connection.

Retrieves all presets.

Same as get_preset/2 but passes another connection.

Retrieves all presets.

Same as list_presets/1 but passes another connection.

Create or update an existing preset.

Same as upsert_preset/3 but passes another connection.

Functions

delete_preset(preset_id)

(since 1.0.0)
@spec delete_preset(String.t()) ::
  {:ok, OpenApiTypesense.PresetDeleteSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Permanently deletes a preset, given it's name.

delete_preset(preset_id, opts)

(since 1.0.0)

Same as delete_preset/1

ExTypesense.delete_preset("listing_view", [])
ExTypesense.delete_preset(%{api_key: xyz, host: ...}, "listing_view")
ExTypesense.delete_preset(OpenApiTypesense.Connection.new(), "listing_view")

delete_preset(conn, preset_id, opts)

(since 1.0.0)

Same as delete_preset/2 but passes another connection.

ExTypesense.delete_preset(%{api_key: xyz, host: ...}, "listing_view", [])
ExTypesense.delete_preset(OpenApiTypesense.Connection.new(), "listing_view", [])

get_preset(preset_id)

(since 1.0.0)
@spec get_preset(String.t()) ::
  {:ok, OpenApiTypesense.PresetSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Retrieves all presets.

get_preset(preset_id, opts)

(since 1.0.0)

Same as get_preset/1

ExTypesense.get_preset("listing_view", [])
ExTypesense.get_preset(%{api_key: xyz, host: ...}, "listing_view")
ExTypesense.get_preset(OpenApiTypesense.Connection.new(), "listing_view")

get_preset(conn, preset_id, opts)

(since 1.0.0)

Same as get_preset/2 but passes another connection.

ExTypesense.get_preset(%{api_key: xyz, host: ...}, "listing_view", [])
ExTypesense.get_preset(OpenApiTypesense.Connection.new(), "listing_view", [])

list_presets()

(since 1.0.0)
@spec list_presets() :: {:ok, OpenApiTypesense.PresetsRetrieveSchema.t()} | :error

Retrieves all presets.

list_presets(opts)

(since 1.0.0)
@spec list_presets(map() | OpenApiTypesense.Connection.t() | keyword()) ::
  {:ok, OpenApiTypesense.PresetsRetrieveSchema.t()} | :error

Same as list_presets/0

ExTypesense.list_presets([])
ExTypesense.list_presets(%{api_key: xyz, host: ...})
ExTypesense.list_presets(OpenApiTypesense.Connection.new())

list_presets(conn, opts)

(since 1.0.0)
@spec list_presets(
  map() | OpenApiTypesense.Connection.t(),
  keyword()
) :: {:ok, OpenApiTypesense.PresetsRetrieveSchema.t()} | :error

Same as list_presets/1 but passes another connection.

ExTypesense.list_presets(%{api_key: xyz, host: ...}, [])
ExTypesense.list_presets(OpenApiTypesense.Connection.new(), [])

upsert_preset(preset_id, body)

(since 1.0.0)
@spec upsert_preset(String.t(), map()) ::
  {:ok, OpenApiTypesense.PresetSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Create or update an existing preset.

Examples

iex> body = %{
...>   "value" => %{
...>     "searches" => [
...>       %{"collection" => "restaurants", "q" => "*", "sort_by" => "popularity"}
...>     ]
...>   }
...> }
iex> ExTypesense.upsert_preset("listing_view", body)

upsert_preset(preset_id, body, opts)

(since 1.0.0)
@spec upsert_preset(
  map() | OpenApiTypesense.Connection.t() | String.t(),
  String.t() | map(),
  map() | keyword()
) ::
  {:ok, OpenApiTypesense.PresetSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Same as upsert_preset/2

ExTypesense.upsert_preset("listing_view", body, [])
ExTypesense.upsert_preset(%{api_key: xyz, host: ...}, "listing_view", body)
ExTypesense.upsert_preset(OpenApiTypesense.Connection.new(), "listing_view", body)

upsert_preset(conn, preset_id, body, opts)

(since 1.0.0)

Same as upsert_preset/3 but passes another connection.

ExTypesense.upsert_preset(%{api_key: xyz, host: ...}, "listing_view", body, [])
ExTypesense.upsert_preset(OpenApiTypesense.Connection.new(), "listing_view", body, [])