pub struct Mapping {
pub mapping_type: MappingType,
pub extra: BTreeMap<String, GenericValue>,
pub map_values: Option<Box<Mapping>>,
pub decimal: bool,
pub enum_order: Option<Vec<String>>,
pub subfields: bool,
pub indexed: bool,
}Expand description
OpenSearch mapping. mapping_type is required; all other properties are passed through as-is.
Fields§
§mapping_type: MappingType§extra: BTreeMap<String, GenericValue>§map_values: Option<Box<Mapping>>For a map field (a dynamic-key object), the mapping every runtime key
gets — the same mapping a plain field of the map’s values type
resolves to; None for every other field. A sink maps each key with it
(the OpenSearch sink as a dynamic_templates entry scoped to the map’s
path); a consumer turning the mapping into typed bindings uses it to tell
a map from a plain object and offer a value-kind-typed handle.
Serialized as values beside the map’s own type.
decimal: boolWhether this numeric field came from a FlussoType::Decimal — a PG
numeric/decimal. It maps to OpenSearch double like a true double,
so mapping_type alone can’t tell them apart.
Internal metadata only — not serialized into the index body. It lets a
consumer turning the mapping into typed bindings offer a Decimal-kind
handle (exact) instead of an f64-kind one.
enum_order: Option<Vec<String>>For an Enum field with a declared order, its
variants in rank order; None for a bare enum or any other field. The
OpenSearch sink turns it into a .sort subfield (a per-field normalizer
remapping each variant to a zero-padded rank) so the field sorts by
declared order rather than alphabetically; a consumer building typed
bindings uses it to offer an order-aware sort handle. Internal metadata —
the enum itself is still serialized as a plain keyword.
subfields: boolWhether a sink may add its automatic subfields to this string field —
false when the schema field says subfields: false. A consumer
building typed bindings reads it to drop the subfield accessors.
Serialized as subfields: false only when off.
indexed: boolWhether a sink indexes this field — false when the schema field says
indexed: false. The mapping_type and the
resolved children still describe the stored value’s shape; the
OpenSearch sink maps the field as one object with enabled: false
whatever they say, and a consumer building typed bindings offers no
query handle for it. Serialized as indexed: false only when off.
Implementations§
Source§impl Mapping
impl Mapping
Sourcepub fn of_type(ty: &FlussoType) -> Self
pub fn of_type(ty: &FlussoType) -> Self
The mapping a field of the declared type ty gets with no options of its
own: its OpenSearch type, the type’s default options
and its decimal flag. What every key of a map of ty is mapped as.
Trait Implementations§
Source§impl Serialize for Mapping
Serializes the way OpenSearch expects a field mapping — { "type": …, …extra }
— rather than the struct’s named fields. The extra settings sit beside
type, exactly as they would in the index body. A map adds values: the
mapping each of its keys gets. A field that opted out adds subfields: false
or indexed: false.
impl Serialize for Mapping
Serializes the way OpenSearch expects a field mapping — { "type": …, …extra }
— rather than the struct’s named fields. The extra settings sit beside
type, exactly as they would in the index body. A map adds values: the
mapping each of its keys gets. A field that opted out adds subfields: false
or indexed: false.