ExTypesense.Analytics (ExTypesense v2.0.0)
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
Creates an analytics rule
Delete an analytics rule
Retrieve the details of an analytics rule, given it's name
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()} | {: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()} | {: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()} | {: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()} | {: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 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 list_analytics_rules() :: {: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.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.AnalyticsRuleSchema.t()} | {:error, OpenApiTypesense.ApiResponse.t()}
Upserts an analytics rule with the given name.
@spec upsert_analytics_rule(String.t(), map(), keyword()) :: {: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)