Meilisearch.Indexes (meilisearch v0.20.0) View Source

Collection of functions used to manage indexes.

MeiliSearch Documentation - Indexes

Link to this section Summary

Functions

Create an index

Delete an index

Check if index exists

Get information about an index

List all indexes

Update an index with new primary key. Will fail if primary key has already been set

Link to this section Functions

Specs

Create an index

primary_key can be passed as an option.

Examples

iex> Meilisearch.Indexes.create("meilisearch_test")
{:ok,
  %{
    "createdAt" => "2020-05-23T06:20:18.394281328Z",
    "name" => "meilisearch_test",
    "primaryKey" => nil,
    "uid" => "meilisearch_test",
    "updatedAt" => "2020-05-23T06:20:18.394292399Z"
  }
}

iex> Meilisearch.create("meilisearch_test", primary_key: "key_name")
{:ok,
  %{
    "createdAt" => "2020-05-23T06:20:18.394281328Z",
    "name" => "meilisearch_test",
    "primaryKey" => "key_name",
    "uid" => "meilisearch_test",
    "updatedAt" => "2020-05-23T06:20:18.394292399Z"
  }
}

Specs

Delete an index

Examples

iex> Meilisearch.Indexes.delete("meilisearch_test")
{:ok, nil}

iex> Meilisearch.delete("nonexistent_index")
{:error, 404, Index meilisearch_test not found"}

Specs

exists?(String.t()) :: {:ok, true | false} | {:error, String.t()}

Check if index exists

Examples

iex> Meilisearch.Indexes.exists?("meilisearch_test")
{:ok, true}

iex> Meilisearch.Indexes.exists?("nonexistent_index")
{:ok, false}

Specs

Get information about an index

Example

iex> Meilisearch.Indexes.get("meilisearch_test")
{:ok,
  %{
    "createdAt" => "2020-05-23T06:20:18.394281328Z",
    "name" => "meilisearch_test",
    "primaryKey" => nil,
    "uid" => "meilisearch_test",
    "updatedAt" => "2020-05-23T06:20:18.394292399Z"
  }
}

Specs

List all indexes

Example

iex> Meilisearch.Indexes.list()
{:ok, [
  %{
    "createdAt" => "2020-05-23T06:20:18.394281328Z",
    "name" => "meilisearch_test",
    "primaryKey" => nil,
    "uid" => "meilisearch_test",
    "updatedAt" => "2020-05-23T06:20:18.394292399Z"
  }
]}

Specs

update(String.t(), [{:primary_key, String.t()}]) :: Meilisearch.HTTP.response()

Update an index with new primary key. Will fail if primary key has already been set

primary_key option is required.

Examples

iex> Meilisearch.Indexes.update("meilisearch_test", primary_key: "new_key")
{:ok,
  %{
    "primaryKey" => "new_primary_key",
    "createdAt" => "2020-05-25T04:30:10.681720067Z",
    "name" => "meilisearch_test",
    "uid" => "meilisearch_test",
    "updatedAt" => "2020-05-25T04:30:10.685540577Z"
  }
}