tirexs

by Zatvobor

Zatvobor / tirexs

An Elixir flavored HTTP client and DSL library for Elasticsearch

418 Stars 88 Forks Last release: 8 months ago (v0.9.0) Other 576 Commits 39 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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.

Getting Started

  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. 4. Index a document:

  import Tirexs.HTTP

put("/my_index/users/1", [name: "Jane", email: "[email protected]"])

{: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: "[email protected]", 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: "[email protected]", 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: "[email protected]", name: "Jane"}, _type: "users"}],

max_score: 0.30685282, total: 1}, timed_out: false, took: 5}}

Check out /examples directory as a quick intro.

Gitter

tirexs is split into several layers

Find out more in api reference

Not sure?

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

Contributing

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

License

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

Analytics

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.