pandagg.mapping module

class pandagg.mapping.Mapping(from_=None, identifier=None, properties=None, dynamic=False)[source]

Bases: pandagg.tree._tree.Tree

contains(nid)[source]

Check if the tree contains node of given id

classmethod deserialize(from_, depth=0)[source]
list_nesteds_at_field(field_path)[source]
mapping_type_of_field(field_path)[source]
nested_at_field(field_path)[source]
node_class

alias of pandagg.node.mapping.abstract.Field

node_path(nid)[source]
serialize()[source]
show(data_property='pretty', **kwargs)[source]

Print the tree structure in hierarchy style.

You have three ways to output your tree data, i.e., stdout with show(), plain text file with save2file(), and json string with to_json(). The former two use the same backend to generate a string of tree structure in a text graph.

  • Version >= 1.2.7a*: you can also specify the line_type parameter, such as ‘ascii’ (default), ‘ascii-ex’, ‘ascii-exr’, ‘ascii-em’, ‘ascii-emv’, ‘ascii-emh’) to the change graphical form.
Parameters:
  • nid – the reference node to start expanding.
  • level – the node level in the tree (root as level 0).
  • idhidden – whether hiding the node ID when printing.
  • filter – the function of one variable to act on the Node object. When this parameter is specified, the traversing will not continue to following children of node whose condition does not pass the filter.
  • key – the key param for sorting Node objects in the same level.
  • reverse – the reverse param for sorting Node objects in the same level.
  • line_type
  • data_property – the property on the node data object to be printed.
Returns:

None

validate_agg_node(agg_node, exc=True)[source]

Ensure if node has field or path that it exists in mapping, and that required aggregation type if allowed on this kind of field. :param agg_node: AggNode you want to validate on this mapping :param exc: boolean, if set to True raise exception if invalid :rtype: boolean

class pandagg.mapping.IMapping(from_=None, properties=None, dynamic=False, client=None, root_path=None, depth=1, initial_tree=None, index_name=None)[source]

Bases: pandagg.interactive.abstract.TreeBasedObj

Interactive wrapper upon mapping tree.

class pandagg.mapping.Text(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'text'
class pandagg.mapping.Keyword(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'keyword'
class pandagg.mapping.Long(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'long'
class pandagg.mapping.Integer(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'integer'
class pandagg.mapping.Short(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'short'
class pandagg.mapping.Byte(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'byte'
class pandagg.mapping.Double(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'double'
class pandagg.mapping.HalfFloat(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'half_float'
class pandagg.mapping.ScaledFloat(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'scaled_float'
class pandagg.mapping.Date(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'date'
class pandagg.mapping.DateNanos(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'date_nanos'
class pandagg.mapping.Boolean(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'boolean'
class pandagg.mapping.Binary(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'binary'
class pandagg.mapping.IntegerRange(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'integer_range'
class pandagg.mapping.Float(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'float'
class pandagg.mapping.FloatRange(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'float_range'
class pandagg.mapping.LongRange(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'long_range'
class pandagg.mapping.DoubleRange(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'double_range'
class pandagg.mapping.DateRange(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

KEY = 'date_range'
class pandagg.mapping.Object(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

DISPLAY_PATTERN = ' {%s}'
KEY = 'object'
class pandagg.mapping.Nested(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

DISPLAY_PATTERN = ' [%s]'
KEY = 'nested'
class pandagg.mapping.GeoPoint(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

For lat/lon points

KEY = 'geo_point'
class pandagg.mapping.GeoShape(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

For complex shapes like polygons

KEY = 'geo_shape'
class pandagg.mapping.IP(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

for IPv4 and IPv6 addresses

KEY = 'IP'
class pandagg.mapping.Completion(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

To provide auto-complete suggestions

KEY = 'completion'
class pandagg.mapping.TokenCount(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

To count the number of tokens in a string

KEY = 'token_count'
class pandagg.mapping.MapperMurMur3(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

To compute hashes of values at index-time and store them in the index

KEY = 'murmur3'
class pandagg.mapping.MapperAnnotatedText(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

To index text containing special markup (typically used for identifying named entities)

KEY = 'annotated-text'
class pandagg.mapping.Percolator(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Accepts queries from the query-dsl

KEY = 'percolator'
class pandagg.mapping.Join(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Defines parent/child relation for documents within the same index

KEY = 'join'
class pandagg.mapping.RankFeature(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Record numeric feature to boost hits at query time.

KEY = 'rank_feature'
class pandagg.mapping.RankFeatures(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Record numeric features to boost hits at query time.

KEY = 'rank_features'
class pandagg.mapping.DenseVector(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Record dense vectors of float values.

KEY = 'dense_vector'
class pandagg.mapping.SparseVector(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Record sparse vectors of float values.

KEY = 'sparse_vector'
class pandagg.mapping.SearchAsYouType(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

A text-like field optimized for queries to implement as-you-type completion

KEY = 'search_as_you_type'
class pandagg.mapping.Alias(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Defines an alias to an existing field.

KEY = 'alias'
class pandagg.mapping.Flattened(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Allows an entire JSON object to be indexed as a single field.

KEY = 'flattened'
class pandagg.mapping.Shape(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

For arbitrary cartesian geometries.

KEY = 'shape'
class pandagg.mapping.Histogram(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

For pre-aggregated numerical values for percentiles aggregations.

KEY = 'histogram'
class pandagg.mapping.Index(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

The index to which the document belongs.

KEY = '_index'
class pandagg.mapping.Type(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

The document’s mapping type.

KEY = '_type'
class pandagg.mapping.Id(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

The document’s ID.

KEY = '_id'
class pandagg.mapping.Source(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

The original JSON representing the body of the document.

KEY = '_source'
class pandagg.mapping.Size(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

The size of the _source field in bytes, provided by the mapper-size plugin.

KEY = '_size'
class pandagg.mapping.FieldNames(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

All fields in the document which contain non-null values.

KEY = '_field_names'
class pandagg.mapping.Ignored(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

All fields in the document that have been ignored at index time because of ignore_malformed.

KEY = '_ignored'
class pandagg.mapping.Routing(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

A custom routing value which routes a document to a particular shard.

KEY = '_routing'
class pandagg.mapping.Meta(name, depth=0, is_subfield=False, **body)[source]

Bases: pandagg.node.mapping.abstract.Field

Application specific metadata.

KEY = '_meta'