Elastex v0.2.0 Elastex.Index behaviour

Follows the Elasticsearch Indices API.

Summary

Functions

Adds a single alias for an index

Adds a single alias for an index

Defines a template that will automatically be applied when new indices are created

Checks for an alias for an index

Aliases an index with a name

Performs the analysis process on text and returns the token breakdown

Performs the analysis process on text and returns the token breakdown

Clears all or specific cache associated with all indicies

Clears all or specific cache associated with on or more indicies

Closes an index

Instantiates an index with default settings

Instantiates an index with settings

Deletes an index

Deletes an alias for an index

Deletes a template

Checks if index exists

Flushes all indicies

Flushes one or more indicies

Merges all indicies

Merges one or more indicies

Retrieves information about one or more indices

Gets an alias for an index

Gets type mappings for a field(s)

Gets type mappings for an index

Gets type mappings for an index and type

Retrieves settings of index or indicies

Retrieves a template

Opens an index

Provides type mappings to an index

Provides type mappings to an index with type

Provides insight into on-going index shard recoveries cluster wide

Provides insight into on-going index shard recoveries for a specific index

Explicitly refreshes all indicies

Explicitly refreshes one or more indicies

Rollsover an index

Gets low level segment information that a Lucene index (shard-level) is built with for all indicies

Gets low level segment information that a Lucene index (shard-level) is built with for an index

Provides store information for shard copies of all indices

Provides store information for shard copies of a specific index

Shrinks an index with body

Provides statistics on different operations happening on all indicies

Provides statistics on different operations happening on an index

Initiates a synched flush manually on all indicies

Initiates a synched flush manually on one or more indicies

Checks the existence of a template

Checks if type exists

Changes all index level settings in real time

Changes specific index level settings in real time

Callbacks

Extends the url of cluster builder

Adds params to document builders

Types

body :: map | nil
int_or_string :: non_neg_integer | String.t

Functions

add_alias(index, name)

Specs

add_alias(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Adds a single alias for an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.add_alias("twitter", "tw")
%Elastex.Builder {
  url:    "twitter/_alias/tw",
  method: :put
}
add_alias(body, index, name)

Specs

add_alias(body, String.t, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Adds a single alias for an index.

Elasticsearch Documentation

Examples

iex> body = %{actions: [%{add: %{index: "test_2", alias: "test"}}]}
iex> Elastex.Index.add_alias(body, "twitter", "tw")
%Elastex.Builder {
  url:    "twitter/_alias/tw",
  body:   %{actions: [%{add: %{index: "test_2", alias: "test"}}]},
  method: :put
}
add_template(body, template)

Specs

add_template(body, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Defines a template that will automatically be applied when new indices are created

Elasticsearch Documentation

Examples

iex> body = %{template: "te*", settings: %{number_of_shards: 1}}
iex> Elastex.Index.add_template(body, "template1")
%Elastex.Builder {
  url:    "_template/template1",
  body: %{template: "te*", settings: %{number_of_shards: 1}},
  method: :put
}
alias_exists(index, name)

Specs

alias_exists(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :head, options: term, params: term, type: term, url: String.t}

Checks for an alias for an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.alias_exists("twitter", "tw")
%Elastex.Builder {
  url:    "twitter/_alias/tw",
  method: :head
}
aliases(body)

Specs

aliases(body) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Aliases an index with a name.

Elasticsearch Documentation

Examples

iex> body = %{actions: [%{add: %{index: "test_2", alias: "test"}}]}
iex> Elastex.Index.aliases(body)
%Elastex.Builder {
  url:    "_aliases",
  body:   %{actions: [%{add: %{index: "test_2", alias: "test"}}]},
  method: :post
}
analyze(body)

Specs

analyze(body) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Performs the analysis process on text and returns the token breakdown.

Elasticsearch Documentation

Examples

iex> body = %{analyzer: 'standard', text: 'this is a test'}
iex> Elastex.Index.analyze(body)
%Elastex.Builder {
  url:    "_analyze",
  body: %{analyzer: 'standard', text: 'this is a test'},
  method: :get
}
analyze(body, index)

Specs

analyze(body, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Performs the analysis process on text and returns the token breakdown.

Elasticsearch Documentation

Examples

iex> body = %{analyzer: 'standard', text: 'this is a test'}
iex> Elastex.Index.analyze(body, "twitter")
%Elastex.Builder {
  url:    "twitter/_analyze",
  body: %{analyzer: 'standard', text: 'this is a test'},
  method: :get
}
clear_cache()

Specs

clear_cache :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Clears all or specific cache associated with all indicies.

Elasticsearch Documentation

Examples

iex> Elastex.Index.clear_cache()
%Elastex.Builder {
  url:    "_cache/clear",
  method: :post
}
clear_cache(index)

Specs

clear_cache(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Clears all or specific cache associated with on or more indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.clear_cache("twitter")
%Elastex.Builder {
  url:    "twitter/_cache/clear",
  method: :post
}
close(index)

Specs

close(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Closes an index

Elasticsearch Documentation

Examples

iex> Elastex.Index.close("twitter")
%Elastex.Builder {
  url:    "twitter/_close",
  method: :post,
}
create(index)

Specs

create(String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Instantiates an index with default settings.

Elasticsearch Documentation

Examples

iex> Elastex.Index.create("twitter")
%Elastex.Builder {
  url:    "twitter",
  body:   nil,
  method: :put,
}
create(body, index)

Specs

create(body, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Instantiates an index with settings.

Elasticsearch Documentation

Examples

iex> settings = %{number_of_shards: 3}
iex> Elastex.Index.create(settings, "twitter")
%Elastex.Builder {
  url:    "twitter",
  body:   %{number_of_shards: 3},
  method: :put,
}
delete(index)

Specs

delete(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :delete, options: term, params: term, type: term, url: String.t}

Deletes an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.delete("twitter")
%Elastex.Builder {
  url:    "twitter",
  method: :delete,
}
delete_alias(index, name)

Specs

delete_alias(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :delete, options: term, params: term, type: term, url: String.t}

Deletes an alias for an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.delete_alias("twitter", "tw")
%Elastex.Builder {
  url:    "twitter/_alias/tw",
  method: :delete
}
delete_template(template)

Specs

delete_template(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :delete, options: term, params: term, type: term, url: String.t}

Deletes a template.

Elasticsearch Documentation

Examples

iex> Elastex.Index.delete_template("template1")
%Elastex.Builder {
  url:    "_template/template1",
  method: :delete
}
exists(index)

Specs

exists(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :head, options: term, params: term, type: term, url: String.t}

Checks if index exists

Elasticsearch Documentation

Examples

iex> Elastex.Index.exists("twitter")
%Elastex.Builder {
  url:    "twitter",
  method: :head,
}
extend_url(builder, list)

Callback implementation for Elastex.Extender.extend_url/2.

flush()

Specs

flush :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Flushes all indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.flush()
%Elastex.Builder {
  url:    "_flush",
  method: :post
}
flush(index)

Specs

flush(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Flushes one or more indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.flush("twitter")
%Elastex.Builder {
  url:    "twitter/_flush",
  method: :post
}
force_merge()

Specs

force_merge :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Merges all indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.force_merge()
%Elastex.Builder {
  url:    "_forcemerge",
  method: :post
}
force_merge(index)

Specs

force_merge(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Merges one or more indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.force_merge("twitter")
%Elastex.Builder {
  url:    "twitter/_forcemerge",
  method: :post
}
get(index)

Specs

get(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Retrieves information about one or more indices.

Elasticsearch Documentation

Examples

iex> Elastex.Index.get("twitter")
%Elastex.Builder {
  url:    "twitter",
  method: :get,
}
get_alias(index, name)

Specs

get_alias(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Gets an alias for an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.get_alias("twitter", "tw")
%Elastex.Builder {
  url:    "twitter/_alias/tw",
  method: :get
}
get_field_mapping(index, type, field)

Specs

get_field_mapping(String.t, String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Gets type mappings for a field(s)

Elasticsearch Documentation

Examples

iex> Elastex.Index.get_field_mapping("twitter", "tweet", "message")
%Elastex.Builder {
  url:    "twitter/_mapping/tweet/field/message",
  method: :get
}
get_mapping(index)

Specs

get_mapping(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Gets type mappings for an index

Elasticsearch Documentation

Examples

iex> Elastex.Index.get_mapping("twitter")
%Elastex.Builder {
  url:    "twitter/_mapping",
  method: :get
}
get_mapping(index, type)

Specs

get_mapping(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Gets type mappings for an index and type

Elasticsearch Documentation

Examples

iex> Elastex.Index.get_mapping("twitter", "tweet")
%Elastex.Builder {
  url:    "twitter/_mapping/tweet",
  method: :get
}
get_settings(index)

Specs

get_settings(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Retrieves settings of index or indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.get_settings("twitter")
%Elastex.Builder {
  url:    "twitter/_settings",
  method: :get
}
get_template(template)

Specs

get_template(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Retrieves a template

Elasticsearch Documentation

Examples

iex> Elastex.Index.get_template("template1")
%Elastex.Builder {
  url:    "_template/template1",
  method: :get
}
open(index)

Specs

open(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Opens an index

Elasticsearch Documentation

Examples

iex> Elastex.Index.open("twitter")
%Elastex.Builder {
  url:    "twitter/_open",
  method: :post,
}
params(builder, params)

Callback implementation for Elastex.Extender.params/2.

put_mapping(body, index)

Specs

put_mapping(body, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Provides type mappings to an index

Elasticsearch Documentation

Examples

iex> body = %{mappings: %{tweet:  %{properties: %{message: %{type: "text"}}}}}
iex> Elastex.Index.put_mapping(body, "twitter")
%Elastex.Builder {
  url:    "twitter",
  body: %{mappings: %{tweet:  %{properties: %{message: %{type: "text"}}}}},
  method: :put
}
put_mapping(body, index, type)

Specs

put_mapping(body, String.t, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Provides type mappings to an index with type

Elasticsearch Documentation

Examples

iex> body = %{mappings: %{tweet:  %{properties: %{message: %{type: "text"}}}}}
iex> Elastex.Index.put_mapping(body, "twitter", "tweet")
%Elastex.Builder {
  url:    "twitter/_mapping/tweet",
  body: %{mappings: %{tweet:  %{properties: %{message: %{type: "text"}}}}},
  method: :put
}
recovery()

Specs

recovery :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Provides insight into on-going index shard recoveries cluster wide.

Elasticsearch Documentation

Examples

iex> Elastex.Index.recovery()
%Elastex.Builder {
  url:    "_recovery",
  method: :get
}
recovery(index)

Specs

recovery(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Provides insight into on-going index shard recoveries for a specific index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.recovery()
%Elastex.Builder {
  url:    "_recovery",
  method: :get
}
refresh()

Specs

refresh :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Explicitly refreshes all indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.refresh()
%Elastex.Builder {
  url:    "_refresh",
  method: :post
}
refresh(index)

Specs

refresh(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Explicitly refreshes one or more indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.refresh("twitter")
%Elastex.Builder {
  url:    "twitter/_refresh",
  method: :post
}
rollover(body, index)

Specs

rollover(body, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Rollsover an index

Elasticsearch Documentation

Examples

iex> body = %{conditions: %{max_age:  "7d"}}
iex> Elastex.Index.rollover(body, "twitter")
%Elastex.Builder {
  url:    "twitter/_rollover",
  body: %{conditions: %{max_age:  "7d"}},
  method: :post
}
rollover(body, index, named_index)

Specs

rollover(body, String.t, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Rollsover an index

Elasticsearch Documentation

Examples

iex> body = %{conditions: %{max_age: "7d"}}
iex> Elastex.Index.rollover(body, "twitter", "new_twitter")
%Elastex.Builder {
  url:    "twitter/_rollover/new_twitter",
  body: %{conditions: %{max_age:  "7d"}},
  method: :post
}
segments()

Specs

segments :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Gets low level segment information that a Lucene index (shard-level) is built with for all indicies.

Elasticsearch Documentation

Examples

iex> Elastex.Index.segments()
%Elastex.Builder {
  url:    "_segments",
  method: :get
}
segments(index)

Specs

segments(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Gets low level segment information that a Lucene index (shard-level) is built with for an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.segments("twitter")
%Elastex.Builder {
  url:    "twitter/_segments",
  method: :get
}
shard_stores()

Specs

shard_stores :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Provides store information for shard copies of all indices.

Elasticsearch Documentation

Examples

iex> Elastex.Index.shard_stores()
%Elastex.Builder {
  url:    "_shard_stores",
  method: :get
}
shard_stores(index)

Specs

shard_stores(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Provides store information for shard copies of a specific index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.shard_stores("twitter")
%Elastex.Builder {
  url:    "twitter/_shard_stores",
  method: :get
}
shrink(source_index, target_index)

Specs

shrink(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Shrinks an index

Elasticsearch Documentation

Examples

iex> Elastex.Index.shrink("twitter", "new_twitter")
%Elastex.Builder {
  url:    "twitter/_shrink/new_twitter",
  method: :post,
}
shrink(body, source_index, target_index)

Specs

shrink(body, String.t, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Shrinks an index with body

Elasticsearch Documentation

Examples

iex> body = %{settings: %{"index.number_of_replicas" => 1}}
iex> Elastex.Index.shrink(body, "twitter", "new_twitter")
%Elastex.Builder {
  url:    "twitter/_shrink/new_twitter",
  body: %{settings: %{"index.number_of_replicas" => 1}},
  method: :post
}
stats()

Specs

stats :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Provides statistics on different operations happening on all indicies.

Elasticsearch Documentation

Examples

iex> Elastex.Index.stats()
%Elastex.Builder {
  url:    "_stats",
  method: :get
}
stats(index)

Specs

stats(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :get, options: term, params: term, type: term, url: String.t}

Provides statistics on different operations happening on an index.

Elasticsearch Documentation

Examples

iex> Elastex.Index.stats("twitter")
%Elastex.Builder {
  url:    "twitter/_stats",
  method: :get
}
synced_flush()

Specs

synced_flush :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Initiates a synched flush manually on all indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.synced_flush()
%Elastex.Builder {
  url:    "_flush/synced",
  method: :post
}
synced_flush(index)

Specs

synced_flush(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :post, options: term, params: term, type: term, url: String.t}

Initiates a synched flush manually on one or more indicies

Elasticsearch Documentation

Examples

iex> Elastex.Index.synced_flush("twitter")
%Elastex.Builder {
  url:    "twitter/_flush/synced",
  method: :post
}
template_exists(template)

Specs

template_exists(String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :head, options: term, params: term, type: term, url: String.t}

Checks the existence of a template.

Elasticsearch Documentation

Examples

iex> Elastex.Index.template_exists("template1")
%Elastex.Builder {
  url:    "_template/template1",
  method: :head
}
type_exists(index, type)

Specs

type_exists(String.t, String.t) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: :head, options: term, params: term, type: term, url: String.t}

Checks if type exists

Elasticsearch Documentation

Examples

iex> Elastex.Index.type_exists("twitter", "tweet")
%Elastex.Builder {
  url:    "twitter/_mapping/tweet",
  method: :head
}
update_settings(body)

Specs

update_settings(body) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Changes all index level settings in real time.

Elasticsearch Documentation

Examples

iex> body = %{index: %{number_of_replicas: 4}}
iex> Elastex.Index.update_settings(body)
%Elastex.Builder {
  url:    "_settings",
  body:   %{index: %{number_of_replicas: 4}},
  method: :put
}
update_settings(body, index)

Specs

update_settings(body, String.t) :: %Elastex.Builder{action: term, body: body, headers: term, id: term, index: term, method: :put, options: term, params: term, type: term, url: String.t}

Changes specific index level settings in real time.

Elasticsearch Documentation

Examples

iex> body = %{index: %{number_of_replicas: 4}}
iex> Elastex.Index.update_settings(body, "twitter")
%Elastex.Builder {
  url:    "twitter/_settings",
  body:   %{index: %{number_of_replicas: 4}},
  method: :put
}

Callbacks

extend_url(%, list)

Specs

extend_url(%Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: term, options: term, params: term, type: term, url: term}, [String.t]) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: term, options: term, params: term, type: term, url: String.t}

Extends the url of cluster builder

Examples

iex> builder = %Elastex.Builder{url: "twitter"}
iex> Elastex.Index.extend_url(builder, ["tweet"])
%Elastex.Builder {
  url: "twitter/tweet"
}
params(%, keyword)

Specs

params(%Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: term, options: term, params: term, type: term, url: term}, keyword(String.t)) :: %Elastex.Builder{action: term, body: term, headers: term, id: term, index: term, method: term, options: term, params: keyword(String.t), type: term, url: term}

Adds params to document builders

Examples

iex> builder = %Elastex.Builder{}
iex> Elastex.Index.params(builder, [q: "user:mike"])
%Elastex.Builder {
  params: [q: "user:mike"]
}