ExTypesense.Synonym (ExTypesense v1.1.1)
View SourceThe synonyms feature allows you to define search terms that should
be considered equivalent. For eg: when you define a synonym for
sneaker
as shoe
, searching for sneaker
will now return all records
with the word shoe
in them, in addition to records with the word sneaker
.
More here: https://typesense.org/docs/latest/api/synonyms.html
Summary
Functions
Delete a single synonym from a collection.
Same as delete_synonym/3 but passes another connection.
Retrieve a single synonym from a collection.
Same as get_synonym/3 but passes another connection.
List all synonyms associated with a given collection.
Same as list_synonyms/2 but passes another connection.
Create or update a synonym
Same as upsert_synonym/4 but passes another connection.
Functions
@spec delete_synonym(String.t() | module(), String.t()) :: {:ok, OpenApiTypesense.SearchSynonymDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Delete a single synonym from a collection.
@spec delete_synonym( map() | OpenApiTypesense.Connection.t() | String.t() | module(), String.t(), String.t() | keyword() ) :: {:ok, OpenApiTypesense.SearchSynonymDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as delete_synonym/2.
ExTypesense.delete_synonym("cars", "sedan-synonym", [])
ExTypesense.delete_synonym(%{api_key: xyz, host: ...}, "cars", "sedan-synonym")
ExTypesense.delete_synonym(OpenApiTypesense.Connection.new(), MyApp.Vehicle.Car, "sedan-synonym")
@spec delete_synonym( map() | OpenApiTypesense.Connection.t(), String.t() | module(), String.t(), keyword() ) :: {:ok, OpenApiTypesense.SearchSynonymDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as delete_synonym/3 but passes another connection.
ExTypesense.delete_synonym(%{api_key: xyz, host: ...}, "cars", "sedan-synonym", [])
ExTypesense.delete_synonym(OpenApiTypesense.Connection.new(), MyApp.Vehicle.Car, "sedan-synonym", [])
@spec get_synonym(String.t() | module(), String.t()) :: {:ok, OpenApiTypesense.SearchSynonym.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Retrieve a single synonym from a collection.
@spec get_synonym( map() | OpenApiTypesense.Connection.t() | String.t() | module(), String.t(), String.t() | keyword() ) :: {:ok, OpenApiTypesense.SearchSynonym.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_synonym/2.
ExTypesense.get_synonym("cars", "sedan-synonym", [])
ExTypesense.get_synonym(%{api_key: xyz, host: ...}, "cars", "sedan-synonym")
ExTypesense.get_synonym(OpenApiTypesense.Connection.new(), MyApp.Vehicle.Car, "sedan-synonym")
@spec get_synonym( map() | OpenApiTypesense.Connection.t(), String.t() | module(), String.t(), keyword() ) :: {:ok, OpenApiTypesense.SearchSynonym.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_synonym/3 but passes another connection.
ExTypesense.get_synonym(%{api_key: xyz, host: ...}, "cars", "sedan-synonym", [])
ExTypesense.get_synonym(OpenApiTypesense.Connection.new(), MyApp.Vehicle.Car, "sedan-synonym", [])
@spec list_synonyms(String.t() | module()) :: {:ok, OpenApiTypesense.SearchSynonymsResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
List all synonyms associated with a given collection.
Error
By default, ALL synonyms 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_synonyms( map() | OpenApiTypesense.Connection.t() | String.t() | module(), String.t() | module() | keyword() ) :: {:ok, OpenApiTypesense.SearchSynonymsResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as list_synonyms/1.
ExTypesense.list_synonyms("persons", [])
ExTypesense.list_synonyms(%{api_key: xyz, host: ...}, "persons")
ExTypesense.list_synonyms(OpenApiTypesense.Connection.new(), MyApp.Accounts.Person)
@spec list_synonyms( map() | OpenApiTypesense.Connection.t(), String.t() | module(), keyword() ) :: {:ok, OpenApiTypesense.SearchSynonymsResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as list_synonyms/2 but passes another connection.
ExTypesense.list_synonyms(%{api_key: xyz, host: ...}, "persons", limit: 10)
ExTypesense.list_synonyms(OpenApiTypesense.Connection.new(), MyApp.Accounts.Person, [])
@spec upsert_synonym(String.t() | module(), String.t(), map()) :: {:ok, OpenApiTypesense.SearchSynonym.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Create or update a synonym
Examples
iex> body = %{
...> "synonyms" => ["blazer", "coat", "jacket"],
...> }
iex> ExTypesense.upsert_synonym("products", "coat-synonyms", body)
@spec upsert_synonym( map() | OpenApiTypesense.Connection.t() | String.t() | module(), String.t() | module(), String.t() | map(), map() | keyword() ) :: {:ok, OpenApiTypesense.SearchSynonym.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as upsert_synonym/3.
ExTypesense.upsert_synonym("persons", "coat-synonyms", body, [])
ExTypesense.upsert_synonym(%{api_key: xyz, host: ...}, "persons", "coat-synonyms", body)
ExTypesense.upsert_synonym(OpenApiTypesense.Connection.new(), MyApp.Accounts.Person, "coat-synonyms", body)
@spec upsert_synonym( map() | OpenApiTypesense.Connection.t(), String.t() | module(), String.t(), map(), keyword() ) :: {:ok, OpenApiTypesense.SearchSynonym.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as upsert_synonym/4 but passes another connection.
ExTypesense.upsert_synonym(%{api_key: xyz, host: ...}, "persons", "coat-synonyms", body, [])
ExTypesense.upsert_synonym(OpenApiTypesense.Connection.new(), MyApp.Accounts.Person, "coat-synonyms", body, [])