README.md

# Typesense

<!-- MDOC !-->

A lightweight [Typesense](https://typesense.org) client for Elixir.

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `typesense` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:typesense, "~> 0.2.0"}
  ]
end
```

## Configuration

```elixir
# config/config.exs
config :typesense,
  api_url: "https://search.example.com",
  api_key: "secret"
```

## Usage

To create a [Typesense Collection](https://typesense.org/docs/latest/api/collections.html):

```elixir
schema = %{
  name: "companies",
  fields: [
    %{name: "company_name", type: "string"},
    %{name: "num_employees", type: "int32"},
    %{name: "country", type: "string", facet: true},
  ],
  default_sorting_field: "num_employees"
}

Typesense.Collections.create(schema)
```

To index a [Typesense Document](https://typesense.org/docs/latest/api/documents.html):

```elixir
document = %{
  id: "124",
  company_name: "Stark Industries",
  num_employees: 5215,
  country: "USA"
}

Typesense.Documents.create(collection, document)
```