ExTypesense.Analytics (ExTypesense v2.0.1)

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_analytics_event(body)

(since 1.0.0)
@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)

create_analytics_event(body, opts)

(since 1.0.0)
@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)

create_analytics_rule(body)

(since 1.0.0)
@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)

create_analytics_rule(body, opts)

(since 1.0.0)
@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)

delete_analytics_rule(rule_name)

(since 1.0.0)
@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

delete_analytics_rule(rule_name, opts)

(since 1.0.0)
@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)

get_analytics_rule(rule_name)

(since 1.0.0)
@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)

get_analytics_rule(rule_name, opts)

(since 1.0.0)
@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)

list_analytics_rules()

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

Retrieve the details of all analytics rules

Examples

iex> ExTypesense.list_analytics_rules()

list_analytics_rules(opts)

(since 1.0.0)
@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)

upsert_analytics_rule(rule_name, body)

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

Upserts an analytics rule with the given name.

upsert_analytics_rule(rule_name, body, opts)

(since 1.0.0)
@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)