ExTypesense.NaturalLanguage (ExTypesense v2.3.0)

View Source

Natural Language Search in Typesense allows you to transform any free-form sentences a user might type into your search bar, into a structured set of search parameters.

This feature leverages the magic of Large Language Models (LLMs) to interpret user intent and generate appropriate search parameters like filter conditions, sort orders, and query terms that work with Typesense's search syntax.

More here: https://typesense.org/docs/latest/api/natural-language-search.html

Summary

Functions

create_nl_search_model(body)

(since 2.1.0)

Create a NL search model

Create a new NL search model.

Request Body

Content Types: application/json

The NL search model to be created

create_nl_search_model(body, opts)

(since 2.1.0)
@spec create_nl_search_model(
  body :: OpenApiTypesense.NLSearchModelCreateSchema.t(),
  opts :: keyword()
) ::
  {:ok, OpenApiTypesense.NLSearchModelSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Same as create_nl_search_model/1

Options

  • conn: The custom connection map or struct you passed

delete_nl_search_model(model_id)

(since 2.1.0)
@spec delete_nl_search_model(model_id :: String.t()) ::
  {:ok, OpenApiTypesense.NLSearchModelDeleteSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Delete a NL search model

Delete a specific NL search model by its ID.

delete_nl_search_model(model_id, opts)

(since 2.1.0)
@spec delete_nl_search_model(model_id :: String.t(), opts :: keyword()) ::
  {:ok, OpenApiTypesense.NLSearchModelDeleteSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Same as delete_nl_search_model/1

Options

  • conn: The custom connection map or struct you passed

retrieve_all_nl_search_models()

(since 2.1.0)
@spec retrieve_all_nl_search_models() ::
  {:ok, [OpenApiTypesense.NLSearchModelSchema.t()]}
  | {:error, OpenApiTypesense.ApiResponse.t()}

List all NL search models

Retrieve all NL search models.

retrieve_all_nl_search_models(opts)

(since 2.1.0)
@spec retrieve_all_nl_search_models(opts :: keyword()) ::
  {:ok, [OpenApiTypesense.NLSearchModelSchema.t()]}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Same as retrieve_all_nl_search_models/0

Options

  • conn: The custom connection map or struct you passed

retrieve_nl_search_model(model_id)

(since 2.1.0)
@spec retrieve_nl_search_model(model_id :: String.t()) ::
  {:ok, OpenApiTypesense.NLSearchModelSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Retrieve a NL search model

Retrieve a specific NL search model by its ID.

retrieve_nl_search_model(model_id, opts)

(since 2.1.0)
@spec retrieve_nl_search_model(model_id :: String.t(), opts :: keyword()) ::
  {:ok, OpenApiTypesense.NLSearchModelSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Same as retrieve_nl_search_model/1

Options

  • conn: The custom connection map or struct you passed

update_nl_search_model(model_id, body)

(since 2.1.0)
@spec update_nl_search_model(
  model_id :: String.t(),
  body :: OpenApiTypesense.NLSearchModelCreateSchema.t()
) ::
  {:ok, OpenApiTypesense.NLSearchModelSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Update a NL search model

Update an existing NL search model.

Request Body

Content Types: application/json

The NL search model fields to update

update_nl_search_model(model_id, body, opts)

(since 2.1.0)
@spec update_nl_search_model(
  model_id :: String.t(),
  body :: OpenApiTypesense.NLSearchModelCreateSchema.t(),
  opts :: keyword()
) ::
  {:ok, OpenApiTypesense.NLSearchModelSchema.t()}
  | {:error, OpenApiTypesense.ApiResponse.t()}

Same as update_nl_search_model/2

Options

  • conn: The custom connection map or struct you passed