API

class txes2.ElasticSearch(servers='127.0.0.1:9200', timeout=30, bulk_size=400, discover=True, retry_time=10, discovery_interval=300, default_indexes=None, autorefresh=False, *args, **kwargs)

A PyES-like ElasticSearch client.

Parameters:
  • servers – either a single ES server URL or list of servers. If you don’t provide a scheme (eg https://) then the request will use HTTP by default.
  • timeout (int) – connection timeout in seconds.
  • bulk_size (int) – how much bulk data to accumulate before indexing (when indexing in bulk).
  • retry_time (int) – frequency in seconds for retrying broken ES nodes.
  • discover (bool) – if True, will autodiscover ES nodes at connection time.
  • discovery_interval (bool) – time in seconds between node discovery after initial discovery, set to False to skip.
  • default_indexes (list) – list of indexes to use by default when querying ES.
  • autorefresh (bool) – should we perform index autorefresh.
  • persistent (bool) – use persistent connection.
  • http_auth (tuple) – optional http auth tuple in the form (‘username’, ‘password’).
  • pool (HTTPConnectionPool) – optionally pass in HTTPConnectionPool instance to use for connection pool.
add_alias(alias, indices)

Add an alias to point to a set of indices.

analyze(text, index, analyzer=None)

Perform analysis on textual input.

change_aliases(*commands)

Change the aliases stored.

A command is a tuple of ([“add”|”remove”], index, alias).

You may specify multiple commands as additional arguments.

close_index(index)

Close an index.

cluster_health(level='cluster', wait_for_status=None, wait_for_relocating_shards=None, wait_for_nodes=None, timeout=30)

Check the current cluster health.

cluster_nodes(nodes=None)

The cluster nodes info API.

cluster_state(metrics=None, indices=None, **kwargs)

Retrieve the cluster state.

Parameters:
  • metric – a list of metrics for filtering results (see ES docs).
  • indices – a list of indicies for filtering results (see ES docs).
collect_info()

Collect info about the connection and fill the info dictionary.

count(query, indexes=None, doc_types=None, **params)

Execute a query against one or more indices & get the hit count.

create_index(index, settings=None)

Create an index with the optional settings dict.

create_index_if_missing(index, settings=None)

Create an index with the optional settings dict.

Doesn’t fail when index already exists.

create_river(river, river_name=None)

Create a river.

delete(index, doc_type, id, bulk=False, **query_params)

Delete a document based on its id.

delete_alias(alias, indices)

Delete an alias.

delete_by_query(indexes, doc_types, query, **query_params)

Delete documents from one or more indexes/types from query.

delete_index(index)

Deletes an index.

delete_index_if_exists(index)

Deletes an index if it exists.

delete_mapping(index, doc_type, **query_params)

Delete a document type from a specific index.

delete_river(river, river_name=None)

Delete a river.

flush_bulk(forced=False)

Wait to process all pending operations.

force_bulk()

Force executing of all bulk data.

get(index, doc_type, id, fields=None, routing=None, **query_params)

Get a typed document from an index based on its id.

get_alias(alias)

Return a list of indices pointed to by a given alias.

Raises IndexMissionException if the alias does not exist.

get_indices(include_aliases=False)

Retrieve a dict where each key is the index name and each value is another dict containing the following properties:

  • num_docs: Number of documents in the index or alias.

  • alias_for: Only present for an alias: holds a list of indices

    which this is an alias for. Requires the include_aliases param to be True.

Example:

{u'website': {'num_docs': 10837},
u’website_alias’: {
‘alias_for’: [u’website’], ‘num_docs’: 10837}}
get_mapping(doc_type=None, indexes=None)

Get the mapping definition

index(doc, index, doc_type, id=None, parent=None, force_insert=None, bulk=False, version=None, **query_params)

Index a dict into an index.

mget(ids, index=None, doc_type=None, **query_params)

Get multiples documents based on id.

ids can be:
list of tuples: (index, type, id) list of ids: index and doc_type are required
more_like_this(index, doc_type, id, **query_params)

Execute a “more like this” query against one or more fields.

open_index(index)

Open an index.

optimize(indexes=None, wait_for_merge=False, max_num_segments=None, only_expunge_deletes=False, refresh=True, flush=True)

Optimize one or more indices.

partial_update(index, doc_type, id, doc=None, script=None, script_file=None, params=None, upsert=None, **query_params)

Partially update a document with a script.

If script is passed in, script_file is ignored. For script_file to work, ES >= 1.4.5 is required as per: https://github.com/elastic/elasticsearch/issues/10007

put_mapping(doc_type, mapping, indexes=None)

Register mapping definition for a specific type.

scan(query, indexes=None, doc_type=None, scroll_timeout='10m', **params)

Start a scan eventually returning a Scroller.

search(query, indexes=None, doc_type=None, **params)

Execute a search against one or more indices.

servers

Return a list of servers available for connections.

set_alias(alias, indices)

Set and alias (possibly removing what it already points to).

status(indexes=None)

Retrieve the status of one or more indices.

update_settings(index, settings)

Update settings of an index.