pandagg.mappings module¶
-
class
pandagg.mappings.
Mappings
(properties: Optional[Dict[str, Union[Dict[str, Any], pandagg.node.mappings.abstract.Field]]] = None, dynamic: Optional[bool] = None, **body)[source]¶ Bases:
pandagg.tree._tree.TreeReprMixin
,lighttree.tree.Tree
-
list_nesteds_at_field
(field_path: str) → List[str][source]¶ List nested paths that apply at a given path.
>>> mappings = Mappings(dynamic=False, properties={ >>> 'id': {'type': 'keyword'}, >>> 'comments': {'type': 'nested', 'properties': { >>> 'comment_text': {'type': 'text'}, >>> 'date': {'type': 'date'} >>> }} >>> }) >>> mappings.list_nesteds_at_field('id') [] >>> mappings.list_nesteds_at_field('comments') ['comments'] >>> mappings.list_nesteds_at_field('comments.comment_text') ['comments']
-
mapping_type_of_field
(field_path: str) → str[source]¶ Return field type of provided field path.
>>> mappings = Mappings(dynamic=False, properties={ >>> 'id': {'type': 'keyword'}, >>> 'comments': {'type': 'nested', 'properties': { >>> 'comment_text': {'type': 'text'}, >>> 'date': {'type': 'date'} >>> }} >>> }) >>> mappings.mapping_type_of_field('id') 'keyword' >>> mappings.mapping_type_of_field('comments') 'nested' >>> mappings.mapping_type_of_field('comments.comment_text') 'text'
-
nested_at_field
(field_path: str) → Optional[str][source]¶ Return nested path applied on a given path. Return None is none applies.
>>> mappings = Mappings(dynamic=False, properties={ >>> 'id': {'type': 'keyword'}, >>> 'comments': {'type': 'nested', 'properties': { >>> 'comment_text': {'type': 'text'}, >>> 'date': {'type': 'date'} >>> }} >>> }) >>> mappings.nested_at_field('id') None >>> mappings.nested_at_field('comments') 'comments' >>> mappings.nested_at_field('comments.comment_text') 'comments'
-
to_dict
(from_: Optional[str] = None, depth: Optional[int] = None) → pandagg.types.MappingsDict[source]¶ Serialize Mappings as dict.
Parameters: from – identifier of a field, if provided, limits serialization to this field and its children (used for recursion, shouldn’t be useful) :param depth: integer, if provided, limit the serialization to a given depth :return: dict
-
validate_agg_clause
(agg_clause: pandagg.node.aggs.abstract.AggClause, exc: bool = True) → bool[source]¶ Ensure that if aggregation clause relates to a field (field or path) this field exists in mappings, and that required aggregation type is allowed on this kind of field.
Parameters: - agg_clause – AggClause you want to validate on these mappings
- exc – boolean, if set to True raise exception if invalid
Return type: boolean
-
-
class
pandagg.mappings.
IMappings
(mappings: pandagg.tree.mappings.Mappings, client: Optional[elasticsearch.client.Elasticsearch] = None, index: Optional[List[str]] = None, depth: int = 1, root_path: Optional[str] = None, initial_tree: Optional[pandagg.tree.mappings.Mappings] = None)[source]¶ Bases:
pandagg.utils.DSLMixin
,lighttree.interactive.TreeBasedObj
Interactive wrapper upon mappings tree, allowing field navigation and quick access to single clause aggregations computation.
-
class
pandagg.mappings.
IpRange
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'ip_range'¶
-
-
class
pandagg.mappings.
Text
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'text'¶
-
-
class
pandagg.mappings.
Keyword
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'keyword'¶
-
-
class
pandagg.mappings.
ConstantKeyword
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'constant_keyword'¶
-
-
class
pandagg.mappings.
WildCard
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'wildcard'¶
-
-
class
pandagg.mappings.
Long
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'long'¶
-
-
class
pandagg.mappings.
Integer
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'integer'¶
-
-
class
pandagg.mappings.
Short
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'short'¶
-
-
class
pandagg.mappings.
Byte
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'byte'¶
-
-
class
pandagg.mappings.
Double
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'double'¶
-
-
class
pandagg.mappings.
HalfFloat
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'half_float'¶
-
-
class
pandagg.mappings.
ScaledFloat
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'scaled_float'¶
-
-
class
pandagg.mappings.
Date
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'date'¶
-
-
class
pandagg.mappings.
DateNanos
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'date_nanos'¶
-
-
class
pandagg.mappings.
Boolean
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'boolean'¶
-
-
class
pandagg.mappings.
Binary
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'binary'¶
-
-
class
pandagg.mappings.
IntegerRange
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'integer_range'¶
-
-
class
pandagg.mappings.
Float
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'float'¶
-
-
class
pandagg.mappings.
FloatRange
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'float_range'¶
-
-
class
pandagg.mappings.
LongRange
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'long_range'¶
-
-
class
pandagg.mappings.
DoubleRange
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'double_range'¶
-
-
class
pandagg.mappings.
DateRange
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
-
KEY
= 'date_range'¶
-
-
class
pandagg.mappings.
Object
(properties: Optional[Union[Dict, Type[DocumentSource]]] = None, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.ComplexField
-
KEY
= 'object'¶
-
-
class
pandagg.mappings.
Nested
(properties: Optional[Union[Dict, Type[DocumentSource]]] = None, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.ComplexField
-
KEY
= 'nested'¶
-
-
class
pandagg.mappings.
GeoPoint
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
For lat/lon points
-
KEY
= 'geo_point'¶
-
-
class
pandagg.mappings.
GeoShape
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
For complex shapes like polygons
-
KEY
= 'geo_shape'¶
-
-
class
pandagg.mappings.
IP
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
for IPv4 and IPv6 addresses
-
KEY
= 'ip'¶
-
-
class
pandagg.mappings.
Completion
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
To provide auto-complete suggestions
-
KEY
= 'completion'¶
-
-
class
pandagg.mappings.
TokenCount
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
To count the number of tokens in a string
-
KEY
= 'token_count'¶
-
-
class
pandagg.mappings.
MapperMurMur3
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
To compute hashes of values at index-time and store them in the index
-
KEY
= 'murmur3'¶
-
-
class
pandagg.mappings.
MapperAnnotatedText
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
To index text containing special markup (typically used for identifying named entities)
-
KEY
= 'annotated-text'¶
-
-
class
pandagg.mappings.
Percolator
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Accepts queries from the query-dsl
-
KEY
= 'percolator'¶
-
-
class
pandagg.mappings.
Join
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Defines parent/child relation for documents within the same index
-
KEY
= 'join'¶
-
-
class
pandagg.mappings.
RankFeature
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Record numeric feature to boost hits at query time.
-
KEY
= 'rank_feature'¶
-
-
class
pandagg.mappings.
RankFeatures
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Record numeric features to boost hits at query time.
-
KEY
= 'rank_features'¶
-
-
class
pandagg.mappings.
DenseVector
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Record dense vectors of float values.
-
KEY
= 'dense_vector'¶
-
-
class
pandagg.mappings.
SparseVector
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Record sparse vectors of float values.
-
KEY
= 'sparse_vector'¶
-
-
class
pandagg.mappings.
SearchAsYouType
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
A text-like field optimized for queries to implement as-you-type completion
-
KEY
= 'search_as_you_type'¶
-
-
class
pandagg.mappings.
Alias
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Defines an alias to an existing field.
-
KEY
= 'alias'¶
-
-
class
pandagg.mappings.
Flattened
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
Allows an entire JSON object to be indexed as a single field.
-
KEY
= 'flattened'¶
-
-
class
pandagg.mappings.
Shape
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
For arbitrary cartesian geometries.
-
KEY
= 'shape'¶
-
-
class
pandagg.mappings.
Histogram
(**body)[source]¶ Bases:
pandagg.node.mappings.abstract.RegularField
For pre-aggregated numerical values for percentiles aggregations.
-
KEY
= 'histogram'¶
-
-
class
pandagg.mappings.
Index
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
The index to which the document belongs.
-
KEY
= '_index'¶
-
-
class
pandagg.mappings.
Type
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
The document’s mappings type.
-
KEY
= '_type'¶
-
-
class
pandagg.mappings.
Id
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
The document’s ID.
-
KEY
= '_id'¶
-
-
class
pandagg.mappings.
FieldNames
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
All fields in the document which contain non-null values.
-
KEY
= '_field_names'¶
-
-
class
pandagg.mappings.
Source
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
The original JSON representing the body of the document.
-
KEY
= '_source'¶
-
-
class
pandagg.mappings.
Size
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
The size of the _source field in bytes, provided by the mapper-size plugin.
-
KEY
= '_size'¶
-
-
class
pandagg.mappings.
Ignored
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
All fields in the document that have been ignored at index time because of ignore_malformed.
-
KEY
= '_ignored'¶
-
-
class
pandagg.mappings.
Routing
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
A custom routing value which routes a document to a particular shard.
-
KEY
= '_routing'¶
-
-
class
pandagg.mappings.
Meta
(*, multiple: Optional[bool] = None, required: bool = False, **body)[source]¶ Bases:
pandagg.node.mappings.abstract.Field
Application specific metadata.
-
KEY
= '_meta'¶
-