Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

Zatvobor/tirexs

An Elixir flavored HTTP client and DSL library for Elasticsearch

Zatvobor/tirexs.json
{
"createdAt": "2013-02-14T16:22:03Z",
"defaultBranch": "master",
"description": "An Elixir flavored HTTP client and DSL library for Elasticsearch",
"fullName": "Zatvobor/tirexs",
"homepage": "https://hexdocs.pm/tirexs/api-reference.html",
"language": "Elixir",
"name": "tirexs",
"pushedAt": "2022-01-10T05:34:18Z",
"stargazersCount": 427,
"topics": [
"elasticsearch"
],
"updatedAt": "2025-10-12T16:52:17Z",
"url": "https://github.com/Zatvobor/tirexs"
}

Build Status HEX version HEX downloads Deps Status

An Elixir flavored HTTP client and DSL library for building JSON based settings, mappings, queries to Elasticsearch engine.

  1. Add this to the defp deps do list in your mix.exs file:
{:tirexs, "~> 0.8"}
  1. Also in mix.exs, add :tirexs to the :applications list in def application.

  2. In config/dev.exs, configure tirexs:

    # The default uri is http://127.0.0.1:9200
    config :tirexs, :uri, "http://127.0.0.1:9200"

    See lib/tirexs/env.ex for more configuration options.

  3. Index a document:

import Tirexs.HTTP
put("/my_index/users/1", [name: "Jane", email: "jane@example.com"])
# {:ok, 201,
# %{_id: "1", _index: "my_index", _type: "users", _version: 1, created: true}}
  1. Fetch the document:
get("/my_index/users/1")
# {:ok, 200,
# %{_id: "1", _index: "my_index",
# _source: %{email: "jane@example.com", name: "Jane"}, _type: "users",
# _version: 1, found: true}}
  1. Simplified search:
get("/my_index/users/_search?q=name:jane")
# {:ok, 200,
# %{_shards: %{failed: 0, successful: 5, total: 5},
# hits: %{hits: [%{_id: "1", _index: "my_index", _score: 0.30685282,
# _source: %{email: "jane@example.com", name: "Jane"}, _type: "users"}],
# max_score: 0.30685282, total: 1}, timed_out: false, took: 10}}
  1. Query DSL
import Tirexs.Search
query = search [index: "my_index"] do
query do
match "name", "jane"
end
end
# [search: [query: [match: [name: [query: "jane"]]]], index: "my_index"]
Tirexs.Query.create_resource(query)
# {:ok, 200,
# %{_shards: %{failed: 0, successful: 5, total: 5},
# hits: %{hits: [%{_id: "1", _index: "my_index", _score: 0.30685282,
# _source: %{email: "jane@example.com", name: "Jane"}, _type: "users"}],
# max_score: 0.30685282, total: 1}, timed_out: false, took: 5}}

Check out [/examples]!(/examples) directory as a quick intro.

Gitter

Find out more in api reference

Look around using https://hex.pm/packages?search=elasticsearch… to find out some other packages.

If you feel like porting or fixing something, please drop a pull request or issue tracker at GitHub! Check out the [CONTRIBUTING.md]!(CONTRIBUTING.md) for more details.

Tirexs source code is released under Apache 2 License. Check [LICENSE]!(LICENSE) and [NOTICE]!(NOTICE) files for more details. The project HEAD is https://github.com/zatvobor/tirexs.

Analytics