pyes.es

class pyes.es.ES(server='localhost:9200', timeout=30.0, bulk_size=400, encoder=None, decoder=None, max_retries=3, retry_time=60, default_indices=None, default_types=None, log_curl=False, dump_curl=False, model=<class 'pyes.models.ElasticSearchModel'>, basic_auth=None, raise_on_bulk_item_failure=False, document_object_field=None, bulker_class=<class 'pyes.models.ListBulker'>, cert_reqs='CERT_OPTIONAL')

ES connection object.

bulk_size

Get the current bulk_size

Return a int:the size of the bulk holder
collect_info()

Collect info about the connection and fill the info dictionary.

count(query=None, indices=None, doc_types=None, **query_params)

Execute a query against one or more indices and get hits count.

create_bulker()

Create a bulker object and return it to allow to manage custom bulk policies

create_percolator(index, name, query, **kwargs)

Create a percolator document

Any kwargs will be added to the document as extra properties.

create_river(river, river_name=None)

Create a river

decoder

alias of ESJsonDecoder

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

Delete a typed JSON document from a specific index based on its id. If bulk is True, the delete operation is put in bulk mode.

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

Delete documents from one or more indices and one or more types based on a query.

delete_percolator(index, name)

Delete a percolator document

delete_river(river, river_name=None)

Delete a river

delete_warmer(doc_types=None, indices=None, name=None, querystring_args=None)

Retrieve warmer

Parameters:
  • doc_types – list of document types
  • warmer – anything with serialize method or a dictionary
  • name – warmer name. If not provided, all warmers for given indices will be deleted
  • querystring_args – additional arguments passed as GET params to ES
encode_json(serializable)

Serialize to json a serializable object (Search, Query, Filter, etc).

encoder

alias of ESJsonEncoder

ensure_index(index, mappings=None, settings=None, clear=False)

Ensure if an index with mapping exists

exists(index, doc_type, id, **query_params)

Return if a document exists

factory_object(index, doc_type, data=None, id=None)

Create a stub object to be manipulated

flush_bulk(forced=False)

Send pending operations if forced or if the bulk threshold is exceeded.

force_bulk()

Force executing of all bulk data.

Return the bulk response

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

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

get_file(index, doc_type, id=None)

Return the filename and memory data stream

get_warmer(doc_types=None, indices=None, name=None, querystring_args=None)

Retrieve warmer

Parameters:
  • doc_types – list of document types
  • warmer – anything with serialize method or a dictionary
  • name – warmer name. If not provided, all warmers will be returned
  • querystring_args – additional arguments passed as GET params to ES
index(doc, index, doc_type, id=None, parent=None, force_insert=False, op_type=None, bulk=False, version=None, querystring_args=None, ttl=None)

Index a typed JSON document into a specific index and make it searchable.

index_raw_bulk(header, document)

Function helper for fast inserting

Parameters:
  • header – a string with the bulk header must be ended with a newline
  • document – a json document string must be ended with a newline
mappings
mget(ids, index=None, doc_type=None, **query_params)

Get multi JSON documents.

ids can be:
list of tuple: (index, type, id) list of ids: index and doc_type are required
morelikethis(index, doc_type, id, fields, **query_params)

Execute a “more like this” search query against one or more fields and get back search hits.

partial_update(index, doc_type, id, doc=None, script=None, params=None, upsert=None, querystring_args=None)

Partially update a document with a script

percolate(index, doc_types, query)

Match a query with a document

put_file(filename, index, doc_type, id=None, name=None)

Store a file in a index

put_warmer(doc_types=None, indices=None, name=None, warmer=None, querystring_args=None)

Put new warmer into index (or type)

Parameters:
  • doc_types – list of document types
  • warmer – anything with serialize method or a dictionary
  • name – warmer name
  • querystring_args – additional arguments passed as GET params to ES
raise_on_bulk_item_failure

Get the raise_on_bulk_item_failure status

Return a bool:the status of raise_on_bulk_item_failure
search(query, indices=None, doc_types=None, model=None, scan=False, headers=None, **query_params)

Execute a search against one or more indices to get the resultset.

query must be a Search object, a Query object, or a custom dictionary of search parameters using the query DSL to be passed directly.

search_multi(queries, indices_list=None, doc_types_list=None, routing_list=None, search_type_list=None, models=None, scans=None)
search_raw(query, indices=None, doc_types=None, headers=None, **query_params)

Execute a search against one or more indices to get the search hits.

query must be a Search object, a Query object, or a custom dictionary of search parameters using the query DSL to be passed directly.

search_raw_multi(queries, indices_list=None, doc_types_list=None, routing_list=None, search_type_list=None)
search_scroll(scroll_id, scroll='10m')

Executes a scrolling given an scroll_id

suggest(name, text, field, type='term', size=None, params=None, **kwargs)

Execute suggester of given type.

Parameters:
  • name – name for the suggester
  • text – text to search for
  • field – field to search
  • type – One of: completion, phrase, term
  • size – number of results
  • params – additional suggester params
  • kwargs
Returns:

suggest_from_object(suggest, indices=None, preference=None, routing=None, raw=False, **kwargs)
update(index, doc_type, id, script=None, lang='mvel', params=None, document=None, upsert=None, model=None, bulk=False, querystring_args=None, retry_on_conflict=None, routing=None, doc_as_upsert=None)
update_by_function(extra_doc, index, doc_type, id, querystring_args=None, update_func=None, attempts=2)

Update an already indexed typed JSON document.

The update happens client-side, i.e. the current document is retrieved, updated locally and finally pushed to the server. This may repeat up to attempts times in case of version conflicts.

Parameters:
  • update_func – A callable update_func(current_doc, extra_doc) that computes and returns the updated doc. Alternatively it may update current_doc in place and return None. The default update_func is dict.update.
  • attempts – How many times to retry in case of version conflict.
update_mapping_meta(doc_type, values, indices=None)

Update mapping meta :param doc_type: a doc type or a list of doctypes :param values: the dict of meta :param indices: a list of indices :return:

validate_types(types=None)

Return a valid list of types.

types may be a string or a list of strings. If types is not supplied, returns the default_types.

class pyes.es.ESJsonDecoder(*args, **kwargs)
dict_to_object(d)

Decode datetime value from string to datetime

string_to_datetime(obj)

Decode a datetime string to a datetime object

class pyes.es.ESJsonEncoder(skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, encoding='utf-8', default=None)
default(value)

Convert rogue and mysterious data types. Conversion notes:

  • datetime.date and datetime.datetime objects are

converted into datetime strings.

class pyes.es.EmptyResultSet(*args, **kwargs)
aggs
count()
facets
total
class pyes.es.ResultSet(connection, search, indices=None, doc_types=None, query_params=None, headers=None, auto_fix_keys=False, auto_clean_highlight=False, model=None)
aggs
clean_highlight()

Remove the empty highlight

count()
facets
fix_aggs()

This function convert date_histogram aggs to datetime

fix_facets()

This function convert date_histogram facets to datetime

fix_keys()

Remove the _ from the keys of the results

get_suggested_texts()
max_score
next()
total
class pyes.es.ResultSetList(items, model=None)
count()
facets
next()
total
class pyes.es.ResultSetMulti(connection, searches, indices_list=None, doc_types_list=None, routing_list=None, search_type_list=None, models=None)
next()
pyes.es.expand_suggest_text(suggest)
pyes.es.file_to_attachment(filename, filehandler=None)

Convert a file to attachment

pyes.es.get_id(text)