# `Arangox.API.Analyzers`
[🔗](https://github.com/ArangoDB-Community/arangox/blob/v0.8.0/lib/arangox/api/analyzers.ex#L1)

ArangoDB's Analyzers operations.

Every function takes the pool as its first argument and returns the decoded
response body. See `Arangox.API.Client` for the options they all accept and
for what a `404` returns.

# `all`

```elixir
@spec all(
  Arangox.conn(),
  keyword()
) :: {:ok, term()} | {:error, Exception.t()}
```

List all Analyzers

Retrieves a an array of all Analyzer definitions.
The resulting array contains objects with the following attributes:
- `name`: the Analyzer name
- `type`: the Analyzer type
- `properties`: the properties used to configure the specified type
- `features`: the set of features to set on the Analyzer generated fields

## Returns

Recorded against ArangoDB 3.12.10:

    %{
      "code" => integer,
      "error" => boolean,
      "result" => [%{
        "features" => [string],
        "name" => string,
        "properties" => %{
          "accent" => boolean,
          "case" => string,
          "locale" => string,
          "stemming" => boolean,
          "stopwords" => []
        },
        "type" => string
      }]
    }

# `all!`

```elixir
@spec all!(
  Arangox.conn(),
  keyword()
) :: term()
```

List all Analyzers. Raises on error.

See `all/1`.

# `create`

```elixir
@spec create(Arangox.conn(), term(), keyword()) ::
  {:ok, term()} | {:error, Exception.t()}
```

Create an Analyzer

Creates a new Analyzer based on the provided configuration.

# `create!`

```elixir
@spec create!(Arangox.conn(), term(), keyword()) :: term()
```

Create an Analyzer. Raises on error.

See `create/2`.

# `delete`

```elixir
@spec delete(Arangox.conn(), binary(), keyword()) ::
  {:ok, term()} | {:error, Exception.t()}
```

Remove an Analyzer

Removes an Analyzer configuration identified by `analyzer-name`.

If the Analyzer definition was successfully dropped, an object is returned with
the following attributes:
- `error`: `false`
- `name`: The name of the removed Analyzer

# `delete!`

```elixir
@spec delete!(Arangox.conn(), binary(), keyword()) :: term()
```

Remove an Analyzer. Raises on error.

See `delete/2`.

# `get`

```elixir
@spec get(Arangox.conn(), binary(), keyword()) ::
  {:ok, term()} | {:error, Exception.t()}
```

Get an Analyzer definition

Retrieves the full definition for the specified Analyzer name.
The resulting object contains the following attributes:
- `name`: the Analyzer name
- `type`: the Analyzer type
- `properties`: the properties used to configure the specified type
- `features`: the set of features to set on the Analyzer generated fields

## Returns

Recorded against ArangoDB 3.12.10:

    %{
      "code" => integer,
      "error" => boolean,
      "features" => [],
      "name" => string,
      "properties" => %{},
      "type" => string
    }

# `get!`

```elixir
@spec get!(Arangox.conn(), binary(), keyword()) :: term()
```

Get an Analyzer definition. Raises on error.

See `get/2`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
