elasticsearch/dsl/field.py (3,273 lines of code) (raw):
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you under
# the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
import base64
import collections.abc
import ipaddress
from copy import deepcopy
from datetime import date, datetime
from typing import (
TYPE_CHECKING,
Any,
Dict,
Iterable,
Iterator,
Literal,
Mapping,
Optional,
Sequence,
Tuple,
Type,
Union,
cast,
)
from dateutil import parser, tz
from elastic_transport.client_utils import DEFAULT, DefaultType
from .exceptions import ValidationException
from .query import Q
from .utils import AttrDict, AttrList, DslBase
from .wrappers import Range
if TYPE_CHECKING:
from datetime import tzinfo
from ipaddress import IPv4Address, IPv6Address
from _operator import _SupportsComparison
from . import types
from .document import InnerDoc
from .document_base import InstrumentedField
from .mapping_base import MappingBase
from .query import Query
unicode = str
def construct_field(
name_or_field: Union[
str,
"Field",
Dict[str, Any],
],
**params: Any,
) -> "Field":
# {"type": "text", "analyzer": "snowball"}
if isinstance(name_or_field, collections.abc.Mapping):
if params:
raise ValueError(
"construct_field() cannot accept parameters when passing in a dict."
)
params = deepcopy(name_or_field)
if "type" not in params:
# inner object can be implicitly defined
if "properties" in params:
name = "object"
else:
raise ValueError('construct_field() needs to have a "type" key.')
else:
name = params.pop("type")
return Field.get_dsl_class(name)(**params)
# Text()
if isinstance(name_or_field, Field):
if params:
raise ValueError(
"construct_field() cannot accept parameters "
"when passing in a construct_field object."
)
return name_or_field
# "text", analyzer="snowball"
return Field.get_dsl_class(name_or_field)(**params)
class Field(DslBase):
_type_name = "field"
_type_shortcut = staticmethod(construct_field)
# all fields can be multifields
_param_defs = {"fields": {"type": "field", "hash": True}}
name = ""
_coerce = False
def __init__(
self, multi: bool = False, required: bool = False, *args: Any, **kwargs: Any
):
"""
:arg bool multi: specifies whether field can contain array of values
:arg bool required: specifies whether field is required
"""
self._multi = multi
self._required = required
super().__init__(*args, **kwargs)
def __getitem__(self, subfield: str) -> "Field":
return cast(Field, self._params.get("fields", {})[subfield])
def _serialize(self, data: Any) -> Any:
return data
def _deserialize(self, data: Any) -> Any:
return data
def _empty(self) -> Optional[Any]:
return None
def empty(self) -> Optional[Any]:
if self._multi:
return AttrList([])
return self._empty()
def serialize(self, data: Any) -> Any:
if isinstance(data, (list, AttrList, tuple)):
return list(map(self._serialize, cast(Iterable[Any], data)))
return self._serialize(data)
def deserialize(self, data: Any) -> Any:
if isinstance(data, (list, AttrList, tuple)):
data = [
None if d is None else self._deserialize(d)
for d in cast(Iterable[Any], data)
]
return data
if data is None:
return None
return self._deserialize(data)
def clean(self, data: Any) -> Any:
if data is not None:
data = self.deserialize(data)
if data in (None, [], {}) and self._required:
raise ValidationException("Value required for this field.")
return data
def to_dict(self) -> Dict[str, Any]:
d = super().to_dict()
name, value = cast(Tuple[str, Dict[str, Any]], d.popitem())
value["type"] = name
return value
class CustomField(Field):
name = "custom"
_coerce = True
def to_dict(self) -> Dict[str, Any]:
if isinstance(self.builtin_type, Field):
return self.builtin_type.to_dict()
d = super().to_dict()
d["type"] = self.builtin_type
return d
class RangeField(Field):
_coerce = True
_core_field: Optional[Field] = None
def _deserialize(self, data: Any) -> Range["_SupportsComparison"]:
if isinstance(data, Range):
return data
data = {k: self._core_field.deserialize(v) for k, v in data.items()} # type: ignore[union-attr]
return Range(data)
def _serialize(self, data: Any) -> Optional[Dict[str, Any]]:
if data is None:
return None
if not isinstance(data, collections.abc.Mapping):
data = data.to_dict()
return {k: self._core_field.serialize(v) for k, v in data.items()} # type: ignore[union-attr]
class Float(Field):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "float"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[float, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> float:
return float(data)
class Integer(Field):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "integer"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[int, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> int:
return int(data)
class Object(Field):
"""
:arg doc_class: base doc class that handles mapping.
If no `doc_class` is provided, new instance of `InnerDoc` will be created,
populated with `properties` and used. Can not be provided together with `properties`
:arg enabled:
:arg subobjects:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "object"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
doc_class: Union[Type["InnerDoc"], "DefaultType"] = DEFAULT,
*args: Any,
enabled: Union[bool, "DefaultType"] = DEFAULT,
subobjects: Union[
Literal["true", "false", "auto"], bool, "DefaultType"
] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if enabled is not DEFAULT:
kwargs["enabled"] = enabled
if subobjects is not DEFAULT:
kwargs["subobjects"] = subobjects
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
if doc_class is not DEFAULT and (
properties is not DEFAULT or dynamic is not DEFAULT
):
raise ValidationException(
"doc_class and properties/dynamic should not be provided together"
)
if doc_class is not DEFAULT:
self._doc_class: Type["InnerDoc"] = doc_class
else:
# FIXME import
from .document import InnerDoc
# no InnerDoc subclass, creating one instead...
self._doc_class = type("InnerDoc", (InnerDoc,), {})
for name, field in (
properties if properties is not DEFAULT else {}
).items():
self._doc_class._doc_type.mapping.field(name, field)
if "properties" in kwargs:
del kwargs["properties"]
if dynamic is not DEFAULT:
self._doc_class._doc_type.mapping.meta("dynamic", dynamic)
self._mapping: "MappingBase" = deepcopy(self._doc_class._doc_type.mapping)
super().__init__(**kwargs)
def __getitem__(self, name: str) -> Field:
return self._mapping[name]
def __contains__(self, name: str) -> bool:
return name in self._mapping
def _empty(self) -> "InnerDoc":
return self._wrap({})
def _wrap(self, data: Dict[str, Any]) -> "InnerDoc":
return self._doc_class.from_es(data, data_only=True)
def empty(self) -> Union["InnerDoc", AttrList[Any]]:
if self._multi:
return AttrList[Any]([], self._wrap)
return self._empty()
def to_dict(self) -> Dict[str, Any]:
d = self._mapping.to_dict()
d.update(super().to_dict())
return d
def _collect_fields(self) -> Iterator[Field]:
return self._mapping.properties._collect_fields()
def _deserialize(self, data: Any) -> "InnerDoc":
# don't wrap already wrapped data
if isinstance(data, self._doc_class):
return data
if isinstance(data, AttrDict):
data = data._d_
return self._wrap(data)
def _serialize(
self, data: Optional[Union[Dict[str, Any], "InnerDoc"]]
) -> Optional[Dict[str, Any]]:
if data is None:
return None
# somebody assigned raw dict to the field, we should tolerate that
if isinstance(data, collections.abc.Mapping):
return data
return data.to_dict()
def clean(self, data: Any) -> Any:
data = super().clean(data)
if data is None:
return None
if isinstance(data, (list, AttrList)):
for d in cast(Iterator["InnerDoc"], data):
d.full_clean()
else:
data.full_clean()
return data
def update(self, other: Any, update_only: bool = False) -> None:
if not isinstance(other, Object):
# not an inner/nested object, no merge possible
return
self._mapping.update(other._mapping, update_only)
class AggregateMetricDouble(Field):
"""
:arg default_metric: (required)
:arg metrics: (required)
:arg time_series_metric:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "aggregate_metric_double"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
default_metric: Union[str, "DefaultType"] = DEFAULT,
metrics: Union[Sequence[str], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if default_metric is not DEFAULT:
kwargs["default_metric"] = default_metric
if metrics is not DEFAULT:
kwargs["metrics"] = metrics
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Alias(Field):
"""
:arg path:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "alias"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
path: Union[str, "InstrumentedField", "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if path is not DEFAULT:
kwargs["path"] = str(path)
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Binary(Field):
"""
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "binary"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
def clean(self, data: str) -> str:
# Binary fields are opaque, so there's not much cleaning
# that can be done.
return data
def _deserialize(self, data: Any) -> bytes:
return base64.b64decode(data)
def _serialize(self, data: Any) -> Optional[str]:
if data is None:
return None
return base64.b64encode(data).decode()
class Boolean(Field):
"""
:arg boost:
:arg fielddata:
:arg index:
:arg null_value:
:arg ignore_malformed:
:arg script:
:arg on_script_error:
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "boolean"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
fielddata: Union[
"types.NumericFielddata", Dict[str, Any], "DefaultType"
] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if fielddata is not DEFAULT:
kwargs["fielddata"] = fielddata
if index is not DEFAULT:
kwargs["index"] = index
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if script is not DEFAULT:
kwargs["script"] = script
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> bool:
if data == "false":
return False
return bool(data)
def clean(self, data: Any) -> Optional[bool]:
if data is not None:
data = self.deserialize(data)
if data is None and self._required:
raise ValidationException("Value required for this field.")
return data # type: ignore[no-any-return]
class Byte(Integer):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "byte"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[float, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Completion(Field):
"""
:arg analyzer:
:arg contexts:
:arg max_input_length:
:arg preserve_position_increments:
:arg preserve_separators:
:arg search_analyzer:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "completion"
_param_defs = {
"analyzer": {"type": "analyzer"},
"search_analyzer": {"type": "analyzer"},
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
contexts: Union[
Sequence["types.SuggestContext"], Sequence[Dict[str, Any]], "DefaultType"
] = DEFAULT,
max_input_length: Union[int, "DefaultType"] = DEFAULT,
preserve_position_increments: Union[bool, "DefaultType"] = DEFAULT,
preserve_separators: Union[bool, "DefaultType"] = DEFAULT,
search_analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if analyzer is not DEFAULT:
kwargs["analyzer"] = analyzer
if contexts is not DEFAULT:
kwargs["contexts"] = contexts
if max_input_length is not DEFAULT:
kwargs["max_input_length"] = max_input_length
if preserve_position_increments is not DEFAULT:
kwargs["preserve_position_increments"] = preserve_position_increments
if preserve_separators is not DEFAULT:
kwargs["preserve_separators"] = preserve_separators
if search_analyzer is not DEFAULT:
kwargs["search_analyzer"] = search_analyzer
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class ConstantKeyword(Field):
"""
:arg value:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "constant_keyword"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
value: Any = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if value is not DEFAULT:
kwargs["value"] = value
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class CountedKeyword(Field):
"""
:arg index:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "counted_keyword"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
index: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if index is not DEFAULT:
kwargs["index"] = index
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Date(Field):
"""
:arg default_timezone: timezone that will be automatically used for tz-naive values
May be instance of `datetime.tzinfo` or string containing TZ offset
:arg boost:
:arg fielddata:
:arg format:
:arg ignore_malformed:
:arg index:
:arg script:
:arg on_script_error:
:arg null_value:
:arg precision_step:
:arg locale:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "date"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
default_timezone: Union[str, "tzinfo", "DefaultType"] = DEFAULT,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
fielddata: Union[
"types.NumericFielddata", Dict[str, Any], "DefaultType"
] = DEFAULT,
format: Union[str, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
null_value: Any = DEFAULT,
precision_step: Union[int, "DefaultType"] = DEFAULT,
locale: Union[str, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if fielddata is not DEFAULT:
kwargs["fielddata"] = fielddata
if format is not DEFAULT:
kwargs["format"] = format
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if script is not DEFAULT:
kwargs["script"] = script
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if precision_step is not DEFAULT:
kwargs["precision_step"] = precision_step
if locale is not DEFAULT:
kwargs["locale"] = locale
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
if default_timezone is DEFAULT:
self._default_timezone = None
elif isinstance(default_timezone, str):
self._default_timezone = tz.gettz(default_timezone)
else:
self._default_timezone = default_timezone
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> Union[datetime, date]:
if isinstance(data, str):
try:
data = parser.parse(data)
except Exception as e:
raise ValidationException(
f"Could not parse date from the value ({data!r})", e
)
# we treat the yyyy-MM-dd format as a special case
if hasattr(self, "format") and self.format == "yyyy-MM-dd":
data = data.date()
if isinstance(data, datetime):
if self._default_timezone and data.tzinfo is None:
data = data.replace(tzinfo=self._default_timezone)
return data
if isinstance(data, date):
return data
if isinstance(data, int):
# Divide by a float to preserve milliseconds on the datetime.
return datetime.utcfromtimestamp(data / 1000.0)
raise ValidationException(f"Could not parse date from the value ({data!r})")
class DateNanos(Field):
"""
:arg boost:
:arg format:
:arg ignore_malformed:
:arg index:
:arg script:
:arg on_script_error:
:arg null_value:
:arg precision_step:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "date_nanos"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
format: Union[str, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
null_value: Any = DEFAULT,
precision_step: Union[int, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if format is not DEFAULT:
kwargs["format"] = format
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if script is not DEFAULT:
kwargs["script"] = script
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if precision_step is not DEFAULT:
kwargs["precision_step"] = precision_step
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class DateRange(RangeField):
"""
:arg format:
:arg boost:
:arg coerce:
:arg index:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "date_range"
_core_field = Date()
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
format: Union[str, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if format is not DEFAULT:
kwargs["format"] = format
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if index is not DEFAULT:
kwargs["index"] = index
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class DenseVector(Field):
"""
:arg dims: Number of vector dimensions. Can't exceed `4096`. If `dims`
is not specified, it will be set to the length of the first vector
added to the field.
:arg element_type: The data type used to encode vectors. The supported
data types are `float` (default), `byte`, and `bit`. Defaults to
`float` if omitted.
:arg index: If `true`, you can search this field using the kNN search
API. Defaults to `True` if omitted.
:arg index_options: An optional section that configures the kNN
indexing algorithm. The HNSW algorithm has two internal parameters
that influence how the data structure is built. These can be
adjusted to improve the accuracy of results, at the expense of
slower indexing speed. This parameter can only be specified when
`index` is `true`.
:arg similarity: The vector similarity metric to use in kNN search.
Documents are ranked by their vector field's similarity to the
query vector. The `_score` of each document will be derived from
the similarity, in a way that ensures scores are positive and that
a larger score corresponds to a higher ranking. Defaults to
`l2_norm` when `element_type` is `bit` otherwise defaults to
`cosine`. `bit` vectors only support `l2_norm` as their
similarity metric. This parameter can only be specified when
`index` is `true`.
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "dense_vector"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
dims: Union[int, "DefaultType"] = DEFAULT,
element_type: Union[Literal["bit", "byte", "float"], "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
index_options: Union[
"types.DenseVectorIndexOptions", Dict[str, Any], "DefaultType"
] = DEFAULT,
similarity: Union[
Literal["cosine", "dot_product", "l2_norm", "max_inner_product"],
"DefaultType",
] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if dims is not DEFAULT:
kwargs["dims"] = dims
if element_type is not DEFAULT:
kwargs["element_type"] = element_type
if index is not DEFAULT:
kwargs["index"] = index
if index_options is not DEFAULT:
kwargs["index_options"] = index_options
if similarity is not DEFAULT:
kwargs["similarity"] = similarity
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
self._element_type = kwargs.get("element_type", "float")
if self._element_type in ["float", "byte"]:
kwargs["multi"] = True
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> Any:
if self._element_type == "float":
return float(data)
elif self._element_type == "byte":
return int(data)
return data
class Double(Float):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "double"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[float, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class DoubleRange(RangeField):
"""
:arg boost:
:arg coerce:
:arg index:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "double_range"
_core_field = Double()
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if index is not DEFAULT:
kwargs["index"] = index
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Flattened(Field):
"""
:arg boost:
:arg depth_limit:
:arg doc_values:
:arg eager_global_ordinals:
:arg index:
:arg index_options:
:arg null_value:
:arg similarity:
:arg split_queries_on_whitespace:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "flattened"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
depth_limit: Union[int, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
eager_global_ordinals: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
index_options: Union[
Literal["docs", "freqs", "positions", "offsets"], "DefaultType"
] = DEFAULT,
null_value: Union[str, "DefaultType"] = DEFAULT,
similarity: Union[str, "DefaultType"] = DEFAULT,
split_queries_on_whitespace: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if depth_limit is not DEFAULT:
kwargs["depth_limit"] = depth_limit
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if eager_global_ordinals is not DEFAULT:
kwargs["eager_global_ordinals"] = eager_global_ordinals
if index is not DEFAULT:
kwargs["index"] = index
if index_options is not DEFAULT:
kwargs["index_options"] = index_options
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if similarity is not DEFAULT:
kwargs["similarity"] = similarity
if split_queries_on_whitespace is not DEFAULT:
kwargs["split_queries_on_whitespace"] = split_queries_on_whitespace
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class FloatRange(RangeField):
"""
:arg boost:
:arg coerce:
:arg index:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "float_range"
_core_field = Float()
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if index is not DEFAULT:
kwargs["index"] = index
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class GeoPoint(Field):
"""
:arg ignore_malformed:
:arg ignore_z_value:
:arg null_value:
:arg index:
:arg on_script_error:
:arg script:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "geo_point"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
ignore_z_value: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[
"types.LatLonGeoLocation",
"types.GeoHashLocation",
Sequence[float],
str,
Dict[str, Any],
"DefaultType",
] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if ignore_z_value is not DEFAULT:
kwargs["ignore_z_value"] = ignore_z_value
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class GeoShape(Field):
"""
The `geo_shape` data type facilitates the indexing of and searching
with arbitrary geo shapes such as rectangles and polygons.
:arg coerce:
:arg ignore_malformed:
:arg ignore_z_value:
:arg index:
:arg orientation:
:arg strategy:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "geo_shape"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
ignore_z_value: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
orientation: Union[Literal["right", "left"], "DefaultType"] = DEFAULT,
strategy: Union[Literal["recursive", "term"], "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if ignore_z_value is not DEFAULT:
kwargs["ignore_z_value"] = ignore_z_value
if index is not DEFAULT:
kwargs["index"] = index
if orientation is not DEFAULT:
kwargs["orientation"] = orientation
if strategy is not DEFAULT:
kwargs["strategy"] = strategy
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class HalfFloat(Float):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "half_float"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[float, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Histogram(Field):
"""
:arg ignore_malformed:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "histogram"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class IcuCollationKeyword(Field):
"""
:arg norms:
:arg index_options:
:arg index: Should the field be searchable?
:arg null_value: Accepts a string value which is substituted for any
explicit null values. Defaults to null, which means the field is
treated as missing.
:arg rules:
:arg language:
:arg country:
:arg variant:
:arg strength:
:arg decomposition:
:arg alternate:
:arg case_level:
:arg case_first:
:arg numeric:
:arg variable_top:
:arg hiragana_quaternary_mode:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "icu_collation_keyword"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
norms: Union[bool, "DefaultType"] = DEFAULT,
index_options: Union[
Literal["docs", "freqs", "positions", "offsets"], "DefaultType"
] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[str, "DefaultType"] = DEFAULT,
rules: Union[str, "DefaultType"] = DEFAULT,
language: Union[str, "DefaultType"] = DEFAULT,
country: Union[str, "DefaultType"] = DEFAULT,
variant: Union[str, "DefaultType"] = DEFAULT,
strength: Union[
Literal["primary", "secondary", "tertiary", "quaternary", "identical"],
"DefaultType",
] = DEFAULT,
decomposition: Union[Literal["no", "identical"], "DefaultType"] = DEFAULT,
alternate: Union[Literal["shifted", "non-ignorable"], "DefaultType"] = DEFAULT,
case_level: Union[bool, "DefaultType"] = DEFAULT,
case_first: Union[Literal["lower", "upper"], "DefaultType"] = DEFAULT,
numeric: Union[bool, "DefaultType"] = DEFAULT,
variable_top: Union[str, "DefaultType"] = DEFAULT,
hiragana_quaternary_mode: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if norms is not DEFAULT:
kwargs["norms"] = norms
if index_options is not DEFAULT:
kwargs["index_options"] = index_options
if index is not DEFAULT:
kwargs["index"] = index
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if rules is not DEFAULT:
kwargs["rules"] = rules
if language is not DEFAULT:
kwargs["language"] = language
if country is not DEFAULT:
kwargs["country"] = country
if variant is not DEFAULT:
kwargs["variant"] = variant
if strength is not DEFAULT:
kwargs["strength"] = strength
if decomposition is not DEFAULT:
kwargs["decomposition"] = decomposition
if alternate is not DEFAULT:
kwargs["alternate"] = alternate
if case_level is not DEFAULT:
kwargs["case_level"] = case_level
if case_first is not DEFAULT:
kwargs["case_first"] = case_first
if numeric is not DEFAULT:
kwargs["numeric"] = numeric
if variable_top is not DEFAULT:
kwargs["variable_top"] = variable_top
if hiragana_quaternary_mode is not DEFAULT:
kwargs["hiragana_quaternary_mode"] = hiragana_quaternary_mode
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class IntegerRange(RangeField):
"""
:arg boost:
:arg coerce:
:arg index:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "integer_range"
_core_field = Integer()
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if index is not DEFAULT:
kwargs["index"] = index
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Ip(Field):
"""
:arg boost:
:arg index:
:arg ignore_malformed:
:arg null_value:
:arg on_script_error:
:arg script:
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "ip"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[str, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if index is not DEFAULT:
kwargs["index"] = index
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> Union["IPv4Address", "IPv6Address"]:
# the ipaddress library for pypy only accepts unicode.
return ipaddress.ip_address(unicode(data))
def _serialize(self, data: Any) -> Optional[str]:
if data is None:
return None
return str(data)
class IpRange(Field):
"""
:arg boost:
:arg coerce:
:arg index:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "ip_range"
_core_field = Ip()
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if index is not DEFAULT:
kwargs["index"] = index
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Join(Field):
"""
:arg relations:
:arg eager_global_ordinals:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "join"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
relations: Union[
Mapping[str, Union[str, Sequence[str]]], "DefaultType"
] = DEFAULT,
eager_global_ordinals: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if relations is not DEFAULT:
kwargs["relations"] = relations
if eager_global_ordinals is not DEFAULT:
kwargs["eager_global_ordinals"] = eager_global_ordinals
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Keyword(Field):
"""
:arg boost:
:arg eager_global_ordinals:
:arg index:
:arg index_options:
:arg script:
:arg on_script_error:
:arg normalizer:
:arg norms:
:arg null_value:
:arg similarity:
:arg split_queries_on_whitespace:
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "keyword"
_param_defs = {
"normalizer": {"type": "normalizer"},
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
eager_global_ordinals: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
index_options: Union[
Literal["docs", "freqs", "positions", "offsets"], "DefaultType"
] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
normalizer: Union[str, DslBase, "DefaultType"] = DEFAULT,
norms: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[str, "DefaultType"] = DEFAULT,
similarity: Union[str, None, "DefaultType"] = DEFAULT,
split_queries_on_whitespace: Union[bool, "DefaultType"] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if eager_global_ordinals is not DEFAULT:
kwargs["eager_global_ordinals"] = eager_global_ordinals
if index is not DEFAULT:
kwargs["index"] = index
if index_options is not DEFAULT:
kwargs["index_options"] = index_options
if script is not DEFAULT:
kwargs["script"] = script
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if normalizer is not DEFAULT:
kwargs["normalizer"] = normalizer
if norms is not DEFAULT:
kwargs["norms"] = norms
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if similarity is not DEFAULT:
kwargs["similarity"] = similarity
if split_queries_on_whitespace is not DEFAULT:
kwargs["split_queries_on_whitespace"] = split_queries_on_whitespace
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Long(Integer):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "long"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[int, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class LongRange(RangeField):
"""
:arg boost:
:arg coerce:
:arg index:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "long_range"
_core_field = Long()
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if index is not DEFAULT:
kwargs["index"] = index
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class MatchOnlyText(Field):
"""
A variant of text that trades scoring and efficiency of positional
queries for space efficiency. This field effectively stores data the
same way as a text field that only indexes documents (index_options:
docs) and disables norms (norms: false). Term queries perform as fast
if not faster as on text fields, however queries that need positions
such as the match_phrase query perform slower as they need to look at
the _source document to verify whether a phrase matches. All queries
return constant scores that are equal to 1.0.
:arg fields:
:arg meta: Metadata about the field.
:arg copy_to: Allows you to copy the values of multiple fields into a
group field, which can then be queried as a single field.
"""
name = "match_only_text"
_param_defs = {
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
**kwargs: Any,
):
if fields is not DEFAULT:
kwargs["fields"] = fields
if meta is not DEFAULT:
kwargs["meta"] = meta
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
super().__init__(*args, **kwargs)
class Murmur3(Field):
"""
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "murmur3"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Nested(Object):
"""
:arg enabled:
:arg include_in_parent:
:arg include_in_root:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "nested"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
enabled: Union[bool, "DefaultType"] = DEFAULT,
include_in_parent: Union[bool, "DefaultType"] = DEFAULT,
include_in_root: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if enabled is not DEFAULT:
kwargs["enabled"] = enabled
if include_in_parent is not DEFAULT:
kwargs["include_in_parent"] = include_in_parent
if include_in_root is not DEFAULT:
kwargs["include_in_root"] = include_in_root
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
kwargs.setdefault("multi", True)
super().__init__(*args, **kwargs)
class Passthrough(Field):
"""
:arg enabled:
:arg priority:
:arg time_series_dimension:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "passthrough"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
enabled: Union[bool, "DefaultType"] = DEFAULT,
priority: Union[int, "DefaultType"] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if enabled is not DEFAULT:
kwargs["enabled"] = enabled
if priority is not DEFAULT:
kwargs["priority"] = priority
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Percolator(Field):
"""
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "percolator"
_coerce = True
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
def _deserialize(self, data: Any) -> "Query":
return Q(data) # type: ignore[no-any-return]
def _serialize(self, data: Any) -> Optional[Dict[str, Any]]:
if data is None:
return None
return data.to_dict() # type: ignore[no-any-return]
class Point(Field):
"""
:arg ignore_malformed:
:arg ignore_z_value:
:arg null_value:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "point"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
ignore_z_value: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[str, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if ignore_z_value is not DEFAULT:
kwargs["ignore_z_value"] = ignore_z_value
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class RankFeature(Float):
"""
:arg positive_score_impact:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "rank_feature"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
positive_score_impact: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if positive_score_impact is not DEFAULT:
kwargs["positive_score_impact"] = positive_score_impact
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class RankFeatures(Field):
"""
:arg positive_score_impact:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "rank_features"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
positive_score_impact: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if positive_score_impact is not DEFAULT:
kwargs["positive_score_impact"] = positive_score_impact
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class ScaledFloat(Float):
"""
:arg null_value:
:arg scaling_factor:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "scaled_float"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[float, "DefaultType"] = DEFAULT,
scaling_factor: Union[float, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if scaling_factor is not DEFAULT:
kwargs["scaling_factor"] = scaling_factor
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
if "scaling_factor" not in kwargs:
if len(args) > 0:
kwargs["scaling_factor"] = args[0]
args = args[1:]
else:
raise TypeError("missing required argument: 'scaling_factor'")
super().__init__(*args, **kwargs)
class SearchAsYouType(Field):
"""
:arg analyzer:
:arg index:
:arg index_options:
:arg max_shingle_size:
:arg norms:
:arg search_analyzer:
:arg search_quote_analyzer:
:arg similarity:
:arg term_vector:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "search_as_you_type"
_param_defs = {
"analyzer": {"type": "analyzer"},
"search_analyzer": {"type": "analyzer"},
"search_quote_analyzer": {"type": "analyzer"},
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
index_options: Union[
Literal["docs", "freqs", "positions", "offsets"], "DefaultType"
] = DEFAULT,
max_shingle_size: Union[int, "DefaultType"] = DEFAULT,
norms: Union[bool, "DefaultType"] = DEFAULT,
search_analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
search_quote_analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
similarity: Union[str, None, "DefaultType"] = DEFAULT,
term_vector: Union[
Literal[
"no",
"yes",
"with_offsets",
"with_positions",
"with_positions_offsets",
"with_positions_offsets_payloads",
"with_positions_payloads",
],
"DefaultType",
] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if analyzer is not DEFAULT:
kwargs["analyzer"] = analyzer
if index is not DEFAULT:
kwargs["index"] = index
if index_options is not DEFAULT:
kwargs["index_options"] = index_options
if max_shingle_size is not DEFAULT:
kwargs["max_shingle_size"] = max_shingle_size
if norms is not DEFAULT:
kwargs["norms"] = norms
if search_analyzer is not DEFAULT:
kwargs["search_analyzer"] = search_analyzer
if search_quote_analyzer is not DEFAULT:
kwargs["search_quote_analyzer"] = search_quote_analyzer
if similarity is not DEFAULT:
kwargs["similarity"] = similarity
if term_vector is not DEFAULT:
kwargs["term_vector"] = term_vector
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class SemanticText(Field):
"""
:arg meta:
:arg inference_id: Inference endpoint that will be used to generate
embeddings for the field. This parameter cannot be updated. Use
the Create inference API to create the endpoint. If
`search_inference_id` is specified, the inference endpoint will
only be used at index time. Defaults to `.elser-2-elasticsearch`
if omitted.
:arg search_inference_id: Inference endpoint that will be used to
generate embeddings at query time. You can update this parameter
by using the Update mapping API. Use the Create inference API to
create the endpoint. If not specified, the inference endpoint
defined by inference_id will be used at both index and query time.
"""
name = "semantic_text"
def __init__(
self,
*args: Any,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
inference_id: Union[str, "DefaultType"] = DEFAULT,
search_inference_id: Union[str, "DefaultType"] = DEFAULT,
**kwargs: Any,
):
if meta is not DEFAULT:
kwargs["meta"] = meta
if inference_id is not DEFAULT:
kwargs["inference_id"] = inference_id
if search_inference_id is not DEFAULT:
kwargs["search_inference_id"] = search_inference_id
super().__init__(*args, **kwargs)
class Shape(Field):
"""
The `shape` data type facilitates the indexing of and searching with
arbitrary `x, y` cartesian shapes such as rectangles and polygons.
:arg coerce:
:arg ignore_malformed:
:arg ignore_z_value:
:arg orientation:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "shape"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
ignore_z_value: Union[bool, "DefaultType"] = DEFAULT,
orientation: Union[Literal["right", "left"], "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if ignore_z_value is not DEFAULT:
kwargs["ignore_z_value"] = ignore_z_value
if orientation is not DEFAULT:
kwargs["orientation"] = orientation
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Short(Integer):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "short"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[float, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class SparseVector(Field):
"""
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "sparse_vector"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Text(Field):
"""
:arg analyzer:
:arg boost:
:arg eager_global_ordinals:
:arg fielddata:
:arg fielddata_frequency_filter:
:arg index:
:arg index_options:
:arg index_phrases:
:arg index_prefixes:
:arg norms:
:arg position_increment_gap:
:arg search_analyzer:
:arg search_quote_analyzer:
:arg similarity:
:arg term_vector:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "text"
_param_defs = {
"analyzer": {"type": "analyzer"},
"search_analyzer": {"type": "analyzer"},
"search_quote_analyzer": {"type": "analyzer"},
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
eager_global_ordinals: Union[bool, "DefaultType"] = DEFAULT,
fielddata: Union[bool, "DefaultType"] = DEFAULT,
fielddata_frequency_filter: Union[
"types.FielddataFrequencyFilter", Dict[str, Any], "DefaultType"
] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
index_options: Union[
Literal["docs", "freqs", "positions", "offsets"], "DefaultType"
] = DEFAULT,
index_phrases: Union[bool, "DefaultType"] = DEFAULT,
index_prefixes: Union[
"types.TextIndexPrefixes", None, Dict[str, Any], "DefaultType"
] = DEFAULT,
norms: Union[bool, "DefaultType"] = DEFAULT,
position_increment_gap: Union[int, "DefaultType"] = DEFAULT,
search_analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
search_quote_analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
similarity: Union[str, None, "DefaultType"] = DEFAULT,
term_vector: Union[
Literal[
"no",
"yes",
"with_offsets",
"with_positions",
"with_positions_offsets",
"with_positions_offsets_payloads",
"with_positions_payloads",
],
"DefaultType",
] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if analyzer is not DEFAULT:
kwargs["analyzer"] = analyzer
if boost is not DEFAULT:
kwargs["boost"] = boost
if eager_global_ordinals is not DEFAULT:
kwargs["eager_global_ordinals"] = eager_global_ordinals
if fielddata is not DEFAULT:
kwargs["fielddata"] = fielddata
if fielddata_frequency_filter is not DEFAULT:
kwargs["fielddata_frequency_filter"] = fielddata_frequency_filter
if index is not DEFAULT:
kwargs["index"] = index
if index_options is not DEFAULT:
kwargs["index_options"] = index_options
if index_phrases is not DEFAULT:
kwargs["index_phrases"] = index_phrases
if index_prefixes is not DEFAULT:
kwargs["index_prefixes"] = index_prefixes
if norms is not DEFAULT:
kwargs["norms"] = norms
if position_increment_gap is not DEFAULT:
kwargs["position_increment_gap"] = position_increment_gap
if search_analyzer is not DEFAULT:
kwargs["search_analyzer"] = search_analyzer
if search_quote_analyzer is not DEFAULT:
kwargs["search_quote_analyzer"] = search_quote_analyzer
if similarity is not DEFAULT:
kwargs["similarity"] = similarity
if term_vector is not DEFAULT:
kwargs["term_vector"] = term_vector
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class TokenCount(Field):
"""
:arg analyzer:
:arg boost:
:arg index:
:arg null_value:
:arg enable_position_increments:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "token_count"
_param_defs = {
"analyzer": {"type": "analyzer"},
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
analyzer: Union[str, DslBase, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
null_value: Union[float, "DefaultType"] = DEFAULT,
enable_position_increments: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if analyzer is not DEFAULT:
kwargs["analyzer"] = analyzer
if boost is not DEFAULT:
kwargs["boost"] = boost
if index is not DEFAULT:
kwargs["index"] = index
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if enable_position_increments is not DEFAULT:
kwargs["enable_position_increments"] = enable_position_increments
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class UnsignedLong(Field):
"""
:arg null_value:
:arg boost:
:arg coerce:
:arg ignore_malformed:
:arg index:
:arg on_script_error:
:arg script:
:arg time_series_metric: For internal use by Elastic only. Marks the
field as a time series dimension. Defaults to false.
:arg time_series_dimension: For internal use by Elastic only. Marks
the field as a time series dimension. Defaults to false.
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "unsigned_long"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[int, "DefaultType"] = DEFAULT,
boost: Union[float, "DefaultType"] = DEFAULT,
coerce: Union[bool, "DefaultType"] = DEFAULT,
ignore_malformed: Union[bool, "DefaultType"] = DEFAULT,
index: Union[bool, "DefaultType"] = DEFAULT,
on_script_error: Union[Literal["fail", "continue"], "DefaultType"] = DEFAULT,
script: Union["types.Script", Dict[str, Any], "DefaultType"] = DEFAULT,
time_series_metric: Union[
Literal["gauge", "counter", "summary", "histogram", "position"],
"DefaultType",
] = DEFAULT,
time_series_dimension: Union[bool, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if boost is not DEFAULT:
kwargs["boost"] = boost
if coerce is not DEFAULT:
kwargs["coerce"] = coerce
if ignore_malformed is not DEFAULT:
kwargs["ignore_malformed"] = ignore_malformed
if index is not DEFAULT:
kwargs["index"] = index
if on_script_error is not DEFAULT:
kwargs["on_script_error"] = on_script_error
if script is not DEFAULT:
kwargs["script"] = script
if time_series_metric is not DEFAULT:
kwargs["time_series_metric"] = time_series_metric
if time_series_dimension is not DEFAULT:
kwargs["time_series_dimension"] = time_series_dimension
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Version(Field):
"""
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "version"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)
class Wildcard(Field):
"""
:arg null_value:
:arg doc_values:
:arg copy_to:
:arg store:
:arg meta: Metadata about the field.
:arg properties:
:arg ignore_above:
:arg dynamic:
:arg fields:
:arg synthetic_source_keep:
"""
name = "wildcard"
_param_defs = {
"properties": {"type": "field", "hash": True},
"fields": {"type": "field", "hash": True},
}
def __init__(
self,
*args: Any,
null_value: Union[str, "DefaultType"] = DEFAULT,
doc_values: Union[bool, "DefaultType"] = DEFAULT,
copy_to: Union[
Union[str, "InstrumentedField"],
Sequence[Union[str, "InstrumentedField"]],
"DefaultType",
] = DEFAULT,
store: Union[bool, "DefaultType"] = DEFAULT,
meta: Union[Mapping[str, str], "DefaultType"] = DEFAULT,
properties: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
ignore_above: Union[int, "DefaultType"] = DEFAULT,
dynamic: Union[
Literal["strict", "runtime", "true", "false"], bool, "DefaultType"
] = DEFAULT,
fields: Union[Mapping[str, Field], "DefaultType"] = DEFAULT,
synthetic_source_keep: Union[
Literal["none", "arrays", "all"], "DefaultType"
] = DEFAULT,
**kwargs: Any,
):
if null_value is not DEFAULT:
kwargs["null_value"] = null_value
if doc_values is not DEFAULT:
kwargs["doc_values"] = doc_values
if copy_to is not DEFAULT:
kwargs["copy_to"] = str(copy_to)
if store is not DEFAULT:
kwargs["store"] = store
if meta is not DEFAULT:
kwargs["meta"] = meta
if properties is not DEFAULT:
kwargs["properties"] = properties
if ignore_above is not DEFAULT:
kwargs["ignore_above"] = ignore_above
if dynamic is not DEFAULT:
kwargs["dynamic"] = dynamic
if fields is not DEFAULT:
kwargs["fields"] = fields
if synthetic_source_keep is not DEFAULT:
kwargs["synthetic_source_keep"] = synthetic_source_keep
super().__init__(*args, **kwargs)