A minimalistic Elasticsearch client for Elixir.
- Elixir >= 1.8
- Erlang >= 20
If available in Hex, the package can be installed
by adding es_client
to your list of dependencies in mix.exs
:
def deps do
[
{:es_client, "~> 1.0"},
# You will also need a JSON library
{:jason, "~> 1.1"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/es_client.
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,
timeout: 15_000
Then, use your client.
MyCustomClient.get!("_cat/health")
- Authentication