ExTypesense.Analytics (ExTypesense v1.1.1)
View SourceTypesense can aggregate search queries for both analytics purposes and for query suggestions.
More here: https://typesense.org/docs/latest/api/analytics-query-suggestions.html
Summary
Functions
Create an analytics event
Same as create_analytics_event/2 but passes another connection.
Creates an analytics rule
Same as create_analytics_rule/2 but passes another connection.
Delete an analytics rule
Same as delete_analytics_rule/2 but passes another connection.
Retrieve the details of an analytics rule, given it's name
Same as get_analytics_rule/2 but passes another connection.
Retrieve the details of all analytics rules
Same as list_analytics_rules/1 but passes another connection.
Upserts an analytics rule with the given name.
Functions
@spec create_analytics_event(map()) :: {:ok, OpenApiTypesense.AnalyticsEventCreateResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Create an analytics event
Sending events for analytics e.g rank search results based on popularity.
Examples
iex> body =
...> %{
...> "name" => event_name,
...> "type" => "click",
...> "data" => %{
...> "q" => "nike_shoes",
...> "doc_id" => "2468",
...> "user_id" => "9903"
...> }
...> }
iex> ExTypesense.create_analytics_event(body)
@spec create_analytics_event( map() | OpenApiTypesense.Connection.t(), map() | keyword() ) :: {:ok, OpenApiTypesense.AnalyticsEventCreateResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as create_analytics_event/1
ExTypesense.create_analytics_event(body, [])
ExTypesense.create_analytics_event(%{api_key: xyz, host: ...}, body)
ExTypesense.create_analytics_event(OpenApiTypesense.Connection.new(), body)
@spec create_analytics_event( map() | OpenApiTypesense.Connection.t(), map(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsEventCreateResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as create_analytics_event/2 but passes another connection.
ExTypesense.create_analytics_event(%{api_key: xyz, host: ...}, body, [])
ExTypesense.create_analytics_event(OpenApiTypesense.Connection.new(), body, [])
@spec create_analytics_rule(map()) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Creates an analytics rule
When an analytics rule is created, we give it a name and describe the type, the source collections and the destination collection.
Examples
iex> body = %{
...> "name" => name,
...> "type" => "counter",
...> "params" => %{
...> "source" => %{
...> "collections" => ["products"],
...> "events" => [
...> %{"type" => "click", "weight" => 1, "name" => event_name}
...> ]
...> },
...> "destination" => %{
...> "collection" => "products",
...> "counter_field" => "popularity"
...> }
...> }
...> }
iex> ExTypesense.create_analytics_rule(body)
@spec create_analytics_rule( map() | OpenApiTypesense.Connection.t(), map() | keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as create_analytics_rule/1
ExTypesense.create_analytics_rule(body, [])
ExTypesense.create_analytics_rule(%{api_key: xyz, host: ...}, body)
ExTypesense.create_analytics_rule(OpenApiTypesense.Connection.new(), body)
@spec create_analytics_rule(map() | OpenApiTypesense.Connection.t(), map(), keyword()) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as create_analytics_rule/2 but passes another connection.
ExTypesense.create_analytics_rule(%{api_key: xyz, host: ...}, body, [])
ExTypesense.create_analytics_rule(OpenApiTypesense.Connection.new(), body, [])
@spec delete_analytics_rule(String.t()) :: {:ok, OpenApiTypesense.AnalyticsRuleDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Delete an analytics rule
Permanently deletes an analytics rule, given it's name
@spec delete_analytics_rule( map() | OpenApiTypesense.Connection.t() | String.t(), String.t() | keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as delete_analytics_rule/1
ExTypesense.delete_analytics_rule(rule_name, [])
ExTypesense.delete_analytics_rule(%{api_key: xyz, host: ...}, rule_name)
ExTypesense.delete_analytics_rule(OpenApiTypesense.Connection.new(), rule_name)
@spec delete_analytics_rule( map() | OpenApiTypesense.Connection.t(), String.t(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleDeleteResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as delete_analytics_rule/2 but passes another connection.
ExTypesense.delete_analytics_rule(%{api_key: xyz, host: ...}, rule_name, [])
ExTypesense.delete_analytics_rule(OpenApiTypesense.Connection.new(), rule_name, [])
@spec get_analytics_rule(String.t()) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Retrieve the details of an analytics rule, given it's name
@spec get_analytics_rule( map() | OpenApiTypesense.Connection.t() | String.t(), String.t() | keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_analytics_rule/1
ExTypesense.get_analytics_rule(rule_name, [])
ExTypesense.get_analytics_rule(%{api_key: xyz, host: ...}, rule_name)
ExTypesense.get_analytics_rule(OpenApiTypesense.Connection.new(), rule_name)
@spec get_analytics_rule( map() | OpenApiTypesense.Connection.t(), String.t(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_analytics_rule/2 but passes another connection.
ExTypesense.get_analytics_rule(%{api_key: xyz, host: ...}, rule_name, [])
ExTypesense.get_analytics_rule(OpenApiTypesense.Connection.new(), rule_name, [])
@spec list_analytics_rules() :: {:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
Retrieve the details of all analytics rules
@spec list_analytics_rules(map() | OpenApiTypesense.Connection.t() | keyword()) :: {:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
Same as list_analytics_rules/0
ExTypesense.list_analytics_rules([])
ExTypesense.list_analytics_rules(%{api_key: xyz, host: ...})
ExTypesense.list_analytics_rules(OpenApiTypesense.Connection.new())
@spec list_analytics_rules( map() | OpenApiTypesense.Connection.t(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
Same as list_analytics_rules/1 but passes another connection.
ExTypesense.list_analytics_rules(%{api_key: xyz, host: ...}, [])
ExTypesense.list_analytics_rules(OpenApiTypesense.Connection.new(), [])
@spec upsert_analytics_rule(String.t(), map()) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Upserts an analytics rule with the given name.
@spec upsert_analytics_rule( map() | OpenApiTypesense.Connection.t() | String.t(), String.t() | map(), map() | keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
@spec upsert_analytics_rule( map() | OpenApiTypesense.Connection.t(), String.t(), map(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}