ExTypesense.Analytics
(ExTypesense v2.3.0)
View Source
Typesense 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
Creates an analytics rule
Delete an analytics rule
Flush in-memory analytics to disk
Retrieve analytics events
Retrieve the details of an analytics rule, given it's name
Get analytics subsystem status
Retrieve the details of all analytics rules
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(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsEventCreateResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as create_analytics_event/1
Options
conn: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.create_analytics_event(body, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.create_analytics_event(body, conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.create_analytics_event(body, opts)
@spec create_analytics_rule(map()) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:ok, OpenApiTypesense.AnalyticsRule.t() | [map() | OpenApiTypesense.AnalyticsRule.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(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:ok, OpenApiTypesense.AnalyticsRule.t() | [map() | OpenApiTypesense.AnalyticsRule.t()]} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as create_analytics_rule/1
Options
conn: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.create_analytics_rule(body, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.create_analytics_rule(body, conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.create_analytics_rule(body, opts)
@spec delete_analytics_rule(String.t()) :: {:ok, OpenApiTypesense.AnalyticsRuleDeleteResponse.t()} | {:ok, OpenApiTypesense.AnalyticsRule.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Delete an analytics rule
Permanently deletes an analytics rule, given it's name
@spec delete_analytics_rule( String.t(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleDeleteResponse.t()} | {:ok, OpenApiTypesense.AnalyticsRule.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as delete_analytics_rule/1
Options
conn: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.delete_analytics_rule(rule_name, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.delete_analytics_rule(rule_name, conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.delete_analytics_rule(rule_name, opts)
@spec flush_analytics() :: {:ok, OpenApiTypesense.AnalyticsEventCreateResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Flush in-memory analytics to disk
Triggers a flush of analytics data to persistent storage.
@spec flush_analytics(opts :: keyword()) :: {:ok, OpenApiTypesense.AnalyticsEventCreateResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as flush_analytics/0
Options
conn: The custom connection map or struct you passed
@spec get_analytics_events() :: {:ok, OpenApiTypesense.AnalyticsEventsResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Retrieve analytics events
Retrieve the most recent events for a user and rule.
Options
user_idname: Analytics rule namen: Number of events to return (max 1000)
@spec get_analytics_events(opts :: keyword()) :: {:ok, OpenApiTypesense.AnalyticsEventsResponse.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_analytics_events/0
Options
conn: The custom connection map or struct you passed
@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
Examples
iex> ExTypesense.get_analytics_rule(rule_name)
@spec get_analytics_rule( String.t(), keyword() ) :: {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_analytics_rule/1
Options
conn: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.get_analytics_rule(rule_name, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.get_analytics_rule(rule_name, conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.get_analytics_rule(rule_name, opts)
@spec get_analytics_status() :: {:ok, OpenApiTypesense.AnalyticsStatus.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Get analytics subsystem status
Returns sizes of internal analytics buffers and queues.
@spec get_analytics_status(opts :: keyword()) :: {:ok, OpenApiTypesense.AnalyticsStatus.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as get_analytics_status/0
Options
conn: The custom connection map or struct you passed
@spec list_analytics_rules() :: {:ok, [OpenApiTypesense.AnalyticsRule.t()]} | {:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
Retrieve the details of all analytics rules
Examples
iex> ExTypesense.list_analytics_rules()
@spec list_analytics_rules(keyword()) :: {:ok, [OpenApiTypesense.AnalyticsRule.t()]} | {:ok, OpenApiTypesense.AnalyticsRulesRetrieveSchema.t()} | :error
Same as list_analytics_rules/0
Options
conn: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.list_analytics_rules(conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.list_analytics_rules(conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.list_analytics_rules(opts)
@spec upsert_analytics_rule(String.t(), map()) :: {:ok, OpenApiTypesense.AnalyticsRule.t()} | {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Upserts an analytics rule with the given name.
@spec upsert_analytics_rule(String.t(), map(), keyword()) :: {:ok, OpenApiTypesense.AnalyticsRule.t()} | {:ok, OpenApiTypesense.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Same as upsert_analytics_rule/2
Options
conn: The custom connection map or struct you passed
Examples
iex> conn = %{api_key: xyz, host: ...}
iex> ExTypesense.upsert_analytics_rule(rule_name, body, conn: conn)
iex> conn = OpenApiTypesense.Connection.new()
iex> ExTypesense.upsert_analytics_rule(rule_name, body, conn: conn)
iex> opts = [conn: conn]
iex> ExTypesense.upsert_analytics_rule(rule_name, body, opts)