A minimalistic Elasticsearch client for Elixir.
- Elixir >= 1.15
- Erlang >= 26
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"}
]
endDocumentation can be generated with ExDoc and published on HexDocs.
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
endDon'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,
timeout: 15_000Then, use your client.
MyCustomClient.get!("_cat/health")- Authentication