Skip to content

A minimalistic Elasticsearch client for Elixir.

License

Notifications You must be signed in to change notification settings

i22-digitalagentur/es_client

 
 

Repository files navigation

ESClient

A minimalistic Elasticsearch client for Elixir.

Prerequisites

  • Elixir >= 1.15
  • Erlang >= 26

Installation

The package can be installed by adding es_client to your list of dependencies in mix.exs:

def deps do
  [
    {:es_client, git: "https://github.com/i22-digitalagentur/es_client", tag: "2.0.0"},

    # You will also need a JSON library
    {:jason, "~> 1.4"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs.

Usage

You can call the client directly if you have a config struct.

config = %ESClient.Config{base_url: "http://localhost:9201"}
ESClient.get!(config, "_cat/health")

It's also possible to pass a list of path segments.

ESClient.get!(config, ["_cat", "health"])

When the location is a tuple, the second element becomes encoded as query params.

ESClient.get!(config, {["_cat", "health"], verbose: true})

Or you can use this module to build your own custom client and obtain values from the application config.

defmodule MyCustomClient
  use ESClient, otp_app: :my_app
end

Don't forget to add the configuration to your config.exs.

use Mix.Config
# or
import Config

config :my_app, MyCustomClient,
  base_url: "http://localhost:9201",
  json_keys: :atoms,
  json_library: Jason,
  json_encoder: Jasonrs,
  timeout: 15_000

Then, use your client.

MyCustomClient.get!("_cat/health")

Missing Features

  • Authentication

About

A minimalistic Elasticsearch client for Elixir.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%