---
type: api
title: Find the structure of a text file
description: The text file must contain data that is suitable to be ingested into Elasticsearch.
url: https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-text-structure-find-structure
resource: https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-text-structure-find-structure
products:
  - Elasticsearch
---

# Find the structure of a text file

Authentication: required

Availability: Generally available since 7.13

## Paths

- `POST` `/_text_structure/find_structure`

## Description

The text file must contain data that is suitable to be ingested into Elasticsearch.

This API provides a starting point for ingesting data into Elasticsearch in a format that is suitable for subsequent use with other Elastic Stack functionality.
Unlike other Elasticsearch endpoints, the data that is posted to this endpoint does not need to be UTF-8 encoded and in JSON format.
It must, however, be text; binary text formats are not currently supported.
The size is limited to the Elasticsearch HTTP receive buffer size, which defaults to 100 Mb.

The response from the API contains:

* A couple of messages from the beginning of the text.
* Statistics that reveal the most common values for all fields detected within the text and basic numeric statistics for numeric fields.
* Information about the structure of the text, which is useful when you write ingest configurations to index it or similarly formatted text.
* Appropriate mappings for an Elasticsearch index, which you could use to ingest the text.

All this information can be calculated by the structure finder with no guidance.
However, you can optionally override some of the decisions about the text structure by specifying one or more query parameters.

## Required privileges

- Cluster privileges: `monitor_text_structure`

## Query string parameters

- `charset` (string) — optional
  The text's character set.
It must be a character set that is supported by the JVM that Elasticsearch uses.
For example, `UTF-8`, `UTF-16LE`, `windows-1252`, or `EUC-JP`.
If this parameter is not specified, the structure finder chooses an appropriate character set.
- `column_names` (string) — optional
  If you have set format to `delimited`, you can specify the column names in a comma-separated list.
If this parameter is not specified, the structure finder uses the column names from the header row of the text.
If the text does not have a header role, columns are named "column1", "column2", "column3", for example.
- `delimiter` (string) — optional
  If you have set `format` to `delimited`, you can specify the character used to delimit the values in each row.
Only a single character is supported; the delimiter cannot have multiple characters.
By default, the API considers the following possibilities: comma, tab, semi-colon, and pipe (`|`).
In this default scenario, all rows must have the same number of fields for the delimited format to be detected.
If you specify a delimiter, up to 10% of the rows can have a different number of columns than the first row.
- `ecs_compatibility` (string · default: disabled) — optional
  The mode of compatibility with ECS compliant Grok patterns.
Use this parameter to specify whether to use ECS Grok patterns instead of legacy ones when the structure finder creates a Grok pattern.
Valid values are `disabled` and `v1`.
This setting primarily has an impact when a whole message Grok pattern such as `%{CATALINALOG}` matches the input.
If the structure finder identifies a common structure but has no idea of meaning then generic field names such as `path`, `ipaddress`, `field1`, and `field2` are used in the `grok_pattern` output, with the intention that a user who knows the meanings rename these fields before using it.
- `explain` (boolean · default: false) — optional
  If this parameter is set to `true`, the response includes a field named explanation, which is an array of strings that indicate how the structure finder produced its result.
If the structure finder produces unexpected results for some text, use this query parameter to help you determine why the returned structure was chosen.
- `format` (enum) — optional
  The high level structure of the text.
Valid values are `ndjson`, `xml`, `delimited`, and `semi_structured_text`.
By default, the API chooses the format.
In this default scenario, all rows must have the same number of fields for a delimited format to be detected.
If the format is set to `delimited` and the delimiter is not set, however, the API tolerates up to 5% of rows that have a different number of columns than the first row.
  Values: `ndjson`, `xml`, `delimited`, `semi_structured_text`
- `grok_pattern` (string) — optional
  If you have set `format` to `semi_structured_text`, you can specify a Grok pattern that is used to extract fields from every message in the text.
The name of the timestamp field in the Grok pattern must match what is specified in the `timestamp_field` parameter.
If that parameter is not specified, the name of the timestamp field in the Grok pattern must match "timestamp".
If `grok_pattern` is not specified, the structure finder creates a Grok pattern.
- `has_header_row` (boolean) — optional
  If you have set `format` to `delimited`, you can use this parameter to indicate whether the column names are in the first row of the text.
If this parameter is not specified, the structure finder guesses based on the similarity of the first row of the text to other rows.
- `line_merge_size_limit` (number · default: 10000) — optional
  The maximum number of characters in a message when lines are merged to form messages while analyzing semi-structured text.
If you have extremely long messages you may need to increase this, but be aware that this may lead to very long processing times if the way to group lines into messages is misdetected.
- `lines_to_sample` (number · default: 1000) — optional
  The number of lines to include in the structural analysis, starting from the beginning of the text.
The minimum is 2.
If the value of this parameter is greater than the number of lines in the text, the analysis proceeds (as long as there are at least two lines in the text) for all of the lines.

NOTE: The number of lines and the variation of the lines affects the speed of the analysis.
For example, if you upload text where the first 1000 lines are all variations on the same message, the analysis will find more commonality than would be seen with a bigger sample.
If possible, however, it is more efficient to upload sample text with more variety in the first 1000 lines than to request analysis of 100000 lines to achieve some variety.
- `quote` (string) — optional
  If you have set `format` to `delimited`, you can specify the character used to quote the values in each row if they contain newlines or the delimiter character.
Only a single character is supported.
If this parameter is not specified, the default value is a double quote (`"`).
If your delimited text format does not use quoting, a workaround is to set this argument to a character that does not appear anywhere in the sample.
- `should_trim_fields` (boolean) — optional
  If you have set `format` to `delimited`, you can specify whether values between delimiters should have whitespace trimmed from them.
If this parameter is not specified and the delimiter is pipe (`|`), the default value is `true`.
Otherwise, the default value is `false`.
- `timeout` (union oneOf · default: 25s) — optional
  The maximum amount of time that the structure analysis can take.
If the analysis is still running when the timeout expires then it will be stopped.
  Values: `-1`, `0`
- `timestamp_field` (string) — optional
  The name of the field that contains the primary timestamp of each record in the text.
In particular, if the text were ingested into an index, this is the field that would be used to populate the `@timestamp` field.

If the `format` is `semi_structured_text`, this field must match the name of the appropriate extraction in the `grok_pattern`.
Therefore, for semi-structured text, it is best not to specify this parameter unless `grok_pattern` is also specified.

For structured text, if you specify this parameter, the field must exist within the text.

If this parameter is not specified, the structure finder makes a decision about which field (if any) is the primary timestamp field.
For structured text, it is not compulsory to have a timestamp in the text.
- `timestamp_format` (string) — optional
  The Java time format of the timestamp field in the text.

Only a subset of Java time format letter groups are supported:

* `a`
* `d`
* `dd`
* `EEE`
* `EEEE`
* `H`
* `HH`
* `h`
* `M`
* `MM`
* `MMM`
* `MMMM`
* `mm`
* `ss`
* `XX`
* `XXX`
* `yy`
* `yyyy`
* `zzz`

Additionally `S` letter groups (fractional seconds) of length one to nine are supported providing they occur after `ss` and separated from the `ss` by a `.`, `,` or `:`.
Spacing and punctuation is also permitted with the exception of `?`, newline and carriage return, together with literal text enclosed in single quotes.
For example, `MM/dd HH.mm.ss,SSSSSS 'in' yyyy` is a valid override format.

One valuable use case for this parameter is when the format is semi-structured text, there are multiple timestamp formats in the text, and you know which format corresponds to the primary timestamp, but you do not want to specify the full `grok_pattern`.
Another is when the timestamp format is one that the structure finder does not consider by default.

If this parameter is not specified, the structure finder chooses the best format from a built-in set.

If the special value `null` is specified the structure finder will not look for a primary timestamp in the text.
When the format is semi-structured text this will result in the structure finder treating the text as single-line messages.

## Request body

`application/json`

Type: `object[]`


## Response

`application/json`

- `charset` (string)
  The character encoding used to parse the text.
- `has_header_row` (boolean)
- `has_byte_order_marker` (boolean)
  For UTF character encodings, it indicates whether the text begins with a byte order marker.
- `format` (string)
  Valid values include `ndjson`, `xml`, `delimited`, and `semi_structured_text`.
- `field_stats` (map string to object)
  The most common values of each field, plus basic numeric statistics for the numeric `page_count` field.
This information may provide clues that the data needs to be cleaned or transformed prior to use by other Elastic Stack functionality.
  Map values (object)
  - `count` (number)
  - `cardinality` (number)
  - `top_hits` (object[])
    - `count` (number)
    - `value` (object)
  - `mean_value` (number)
  - `median_value` (number)
  - `max_value` (number)
  - `min_value` (number)
  - `earliest` (string)
  - `latest` (string)
- `sample_start` (string)
  The first two messages in the text verbatim.
This may help diagnose parse errors or accidental uploads of the wrong text.
- `num_messages_analyzed` (number)
  The number of distinct messages the lines contained.
For NDJSON, this value is the same as `num_lines_analyzed`.
For other text formats, messages can span several lines.
- `mappings` (object)
  Some suitable mappings for an index into which the data could be ingested.
  - `all_field` (object)
    - `analyzer` (string)
    - `enabled` (boolean)
    - `omit_norms` (boolean)
    - `search_analyzer` (string)
    - `similarity` (string)
    - `store` (boolean)
    - `store_term_vector_offsets` (boolean)
    - `store_term_vector_payloads` (boolean)
    - `store_term_vector_positions` (boolean)
    - `store_term_vectors` (boolean)
  - `date_detection` (boolean)
  - `dynamic` (enum)
    Values: `strict`, `runtime`, `true`, `false`
  - `dynamic_date_formats` (string[])
  - `dynamic_templates` (string to object[])
  - `_field_names` (object)
    - `enabled` (boolean)
  - `index_field` (object)
    - `enabled` (boolean)
  - `_meta` (object)
  - `numeric_detection` (boolean)
  - `properties` (map string to oneOf)
    Map values (union oneOf)
    One of:
    - **type: binary** (`type: binary`)
      - `type` (enum)
        Values: `binary`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
    - **type: boolean** (`type: boolean`)
      - `type` (enum)
        Values: `boolean`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `fielddata` (object)
        - `format` (enum)
          Values: `array`, `disabled`
      - `index` (boolean)
      - `null_value` (boolean)
      - `ignore_malformed` (boolean)
      - `script` (string)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `time_series_dimension` (boolean)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
    - **type: {dynamic_type}** (`type: {dynamic_type}`)
      - `type` (enum)
        Values: `{dynamic_type}`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `enabled` (boolean)
      - `null_value` (union oneOf)
        One of: `number` or `string` or `boolean` or `object`
      - `boost` (number)
      - `coerce` (boolean)
      - `script` (string)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `ignore_malformed` (boolean)
      - `time_series_metric` (enum)
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean)
      - `analyzer` (string)
      - `eager_global_ordinals` (boolean)
      - `fielddata` (boolean)
      - `fielddata_frequency_filter` (object)
        - `max` (number)
        - `min` (number)
        - `min_segment_size` (number)
      - `index` (boolean)
      - `index_options` (enum)
        Values: `docs`, `freqs`, `positions`, `offsets`
      - `index_phrases` (boolean)
      - `index_prefixes` (union oneOf) — nullable
        - **TextIndexPrefixes**
          - `max_chars` (number)
          - `min_chars` (number)
        - **string**
      - `norms` (boolean)
      - `position_increment_gap` (number)
      - `search_analyzer` (string)
      - `search_quote_analyzer` (string)
      - `similarity` (union string) — nullable
        One of: `string`
      - `term_vector` (enum)
        Values: `no`, `yes`, `with_offsets`, `with_positions`, `with_positions_offsets`, `with_positions_offsets_payloads`, `with_positions_payloads`
      - `format` (string)
      - `precision_step` (number)
      - `locale` (string)
      - `subobjects` (enum)
        Values: `true`, `false`
    - **type: join** (`type: join`)
      - `type` (enum)
        Values: `join`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `relations` (map string to RelationName | RelationName[])
      - `eager_global_ordinals` (boolean)
    - **type: keyword** (`type: keyword`)
      - `type` (enum)
        Values: `keyword`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `eager_global_ordinals` (boolean)
      - `index` (boolean)
      - `index_options` (enum)
        Values: `docs`, `freqs`, `positions`, `offsets`
      - `script` (string)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `normalizer` (string)
      - `norms` (boolean)
      - `null_value` (string)
      - `similarity` (union string) — nullable
        One of: `string`
      - `split_queries_on_whitespace` (boolean)
      - `time_series_dimension` (boolean)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
    - **type: match_only_text** (`type: match_only_text`)
      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.
      - `type` (enum)
        Values: `match_only_text`
      - `fields` (map string to oneOf) — recursive
        Multi-fields allow the same string value to be indexed in multiple ways for different purposes, such as one
field for search and a multi-field for sorting and aggregations, or the same string value analyzed by different analyzers.
      - `meta` (map string to string)
        Metadata about the field.
      - `copy_to` (union oneOf)
        Allows you to copy the values of multiple fields into a group
field, which can then be queried as a single field.
        One of: `string[]` or `string`
    - **type: percolator** (`type: percolator`)
      - `type` (enum)
        Values: `percolator`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
    - **type: rank_feature** (`type: rank_feature`)
      - `type` (enum)
        Values: `rank_feature`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `positive_score_impact` (boolean)
    - **type: rank_features** (`type: rank_features`)
      - `type` (enum)
        Values: `rank_features`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `positive_score_impact` (boolean)
    - **type: search_as_you_type** (`type: search_as_you_type`)
      - `type` (enum)
        Values: `search_as_you_type`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `analyzer` (string)
      - `index` (boolean)
      - `index_options` (enum)
        Values: `docs`, `freqs`, `positions`, `offsets`
      - `max_shingle_size` (number)
      - `norms` (boolean)
      - `search_analyzer` (string)
      - `search_quote_analyzer` (string)
      - `similarity` (union string) — nullable
        One of: `string`
      - `term_vector` (enum)
        Values: `no`, `yes`, `with_offsets`, `with_positions`, `with_positions_offsets`, `with_positions_offsets_payloads`, `with_positions_payloads`
    - **type: text** (`type: text`)
      - `type` (enum)
        Values: `text`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `analyzer` (string)
      - `boost` (number)
      - `eager_global_ordinals` (boolean)
      - `fielddata` (boolean)
      - `fielddata_frequency_filter` (object)
        - `max` (number)
        - `min` (number)
        - `min_segment_size` (number)
      - `index` (boolean)
      - `index_options` (enum)
        Values: `docs`, `freqs`, `positions`, `offsets`
      - `index_phrases` (boolean)
      - `index_prefixes` (union oneOf) — nullable
        - **TextIndexPrefixes**
          - `max_chars` (number)
          - `min_chars` (number)
        - **string**
      - `norms` (boolean)
      - `position_increment_gap` (number)
      - `search_analyzer` (string)
      - `search_quote_analyzer` (string)
      - `similarity` (union string) — nullable
        One of: `string`
      - `term_vector` (enum)
        Values: `no`, `yes`, `with_offsets`, `with_positions`, `with_positions_offsets`, `with_positions_offsets_payloads`, `with_positions_payloads`
    - **type: version** (`type: version`)
      - `type` (enum)
        Values: `version`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
    - **type: wildcard** (`type: wildcard`)
      - `type` (enum)
        Values: `wildcard`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `null_value` (string)
    - **type: date_nanos** (`type: date_nanos`)
      - `type` (enum)
        Values: `date_nanos`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `format` (string)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `script` (string)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `null_value` (union oneOf)
        One of: `string` or `number`
      - `precision_step` (number)
    - **type: date** (`type: date`)
      - `type` (enum)
        Values: `date`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `fielddata` (object)
        - `format` (enum)
          Values: `array`, `disabled`
      - `format` (string)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `script` (string)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `null_value` (union oneOf)
        One of: `string` or `number`
      - `precision_step` (number)
      - `locale` (string)
    - **type: aggregate_metric_double** (`type: aggregate_metric_double`)
      - `type` (enum)
        Values: `aggregate_metric_double`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `default_metric` (string)
      - `ignore_malformed` (boolean)
      - `metrics` (string[])
      - `time_series_metric` (enum)
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
    - **type: dense_vector** (`type: dense_vector`)
      - `type` (enum)
        Values: `dense_vector`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `dims` (number)
        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.
      - `element_type` (enum · default: float)
        The data type used to encode vectors. The supported data types are `float` (default), `byte`, and `bit`.

Supported values include:
  - `bit`: Indexes a single bit per dimension. Useful for very high-dimensional vectors or models that specifically support
bit vectors.

NOTE: when using `bit`, the number of dimensions must be a multiple of `8` and must represent the number of bits.
  - `byte`: Indexes a 1-byte integer value per dimension.
  - `float`: Indexes a 4-byte floating-point value per dimension.
        Values: `bit`, `byte`, `float`
      - `index` (boolean · default: true)
        If `true`, you can search this field using the kNN search API.
      - `index_options` (object)
        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`.
        - `confidence_interval` (number)
          The confidence interval to use when quantizing the vectors. Can be any value between and including `0.90` and
`1.0` or exactly `0`. When the value is `0`, this indicates that dynamic quantiles should be calculated for
optimized quantization. When between `0.90` and `1.0`, this value restricts the values used when calculating
the quantization thresholds.

For example, a value of `0.95` will only use the middle `95%` of the values when calculating the quantization
thresholds (e.g. the highest and lowest `2.5%` of values will be ignored).

Defaults to `1/(dims + 1)` for `int8` quantized vectors and `0` for `int4` for dynamic quantile calculation.

Only applicable to `int8_hnsw`, `int4_hnsw`, `int8_flat`, and `int4_flat` index types.
        - `ef_construction` (number · default: 100)
          The number of candidates to track while assembling the list of nearest neighbors for each new node.

Only applicable to `hnsw`, `int8_hnsw`, `bbq_hnsw`, and `int4_hnsw` index types.
        - `m` (number · default: 16)
          The number of neighbors each node will be connected to in the HNSW graph.

Only applicable to `hnsw`, `int8_hnsw`, `bbq_hnsw`, and `int4_hnsw` index types.
        - `type` (enum)
          The type of kNN algorithm to use.

Supported values include:
  - `bbq_flat`: This utilizes a brute-force search algorithm in addition to automatically quantizing to binary vectors.
Only supports `element_type` of `float`.
  - `bbq_hnsw`: This utilizes the HNSW algorithm in addition to automatic binary quantization for scalable approximate kNN
search with `element_type` of `float`.

This can reduce the memory footprint by nearly 32x at the cost of some accuracy.
  - `flat`: This utilizes a brute-force search algorithm for exact kNN search. This supports all `element_type` values.
  - `hnsw`: This utilizes the HNSW algorithm for scalable approximate kNN search. This supports all `element_type` values.
  - `int4_flat`: This utilizes a brute-force search algorithm in addition to automatically half-byte scalar quantization.
Only supports `element_type` of `float`.
  - `int4_hnsw`: This utilizes the HNSW algorithm in addition to automatically scalar quantization for scalable approximate kNN
search with `element_type` of `float`.

This can reduce the memory footprint by 8x at the cost of some accuracy.
  - `int8_flat`: This utilizes a brute-force search algorithm in addition to automatically scalar quantization. Only supports
`element_type` of `float`.
  - `int8_hnsw`: The default index type for `float` vectors. This utilizes the HNSW algorithm in addition to automatically scalar
quantization for scalable approximate kNN search with `element_type` of `float`.

This can reduce the memory footprint by 4x at the cost of some accuracy.
          Values: `bbq_flat`, `bbq_hnsw`, `flat`, `hnsw`, `int4_flat`, `int4_hnsw`, `int8_flat`, `int8_hnsw`
      - `similarity` (enum)
        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`.

Supported values include:
  - `cosine`: Computes the cosine similarity. During indexing Elasticsearch automatically normalizes vectors with `cosine`
similarity to unit length. This allows to internally use `dot_product` for computing similarity, which is more
efficient. Original un-normalized vectors can be still accessed through scripts.

The document `_score` is computed as `(1 + cosine(query, vector)) / 2`.

The `cosine` similarity does not allow vectors with zero magnitude, since cosine is not defined in this case.
  - `dot_product`: Computes the dot product of two unit vectors. This option provides an optimized way to perform cosine similarity.
The constraints and computed score are defined by `element_type`.

When `element_type` is `float`, all vectors must be unit length, including both document and query vectors.

The document `_score` is computed as `(1 + dot_product(query, vector)) / 2`.

When `element_type` is `byte`, all vectors must have the same length including both document and query vectors or
results will be inaccurate.

The document `_score` is computed as `0.5 + (dot_product(query, vector) / (32768 * dims))` where `dims` is the
number of dimensions per vector.
  - `l2_norm`: Computes similarity based on the `L2` distance (also known as Euclidean distance) between the vectors.

The document `_score` is computed as `1 / (1 + l2_norm(query, vector)^2)`.

For `bit` vectors, instead of using `l2_norm`, the `hamming` distance between the vectors is used.

The `_score` transformation is `(numBits - hamming(a, b)) / numBits`.
  - `max_inner_product`: Computes the maximum inner product of two vectors. This is similar to `dot_product`, but doesn't require vectors
to be normalized. This means that each vector’s magnitude can significantly effect the score.

The document `_score` is adjusted to prevent negative values. For `max_inner_product` values `< 0`, the `_score`
is `1 / (1 + -1 * max_inner_product(query, vector))`. For non-negative `max_inner_product` results the `_score`
is calculated `max_inner_product(query, vector) + 1`.
        Values: `cosine`, `dot_product`, `l2_norm`, `max_inner_product`
    - **type: flattened** (`type: flattened`)
      - `type` (enum)
        Values: `flattened`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `boost` (number)
      - `depth_limit` (number)
      - `doc_values` (boolean)
      - `eager_global_ordinals` (boolean)
      - `index` (boolean)
      - `index_options` (enum)
        Values: `docs`, `freqs`, `positions`, `offsets`
      - `null_value` (string)
      - `similarity` (string)
      - `split_queries_on_whitespace` (boolean)
      - `time_series_dimensions` (string[])
    - **type: nested** (`type: nested`)
      - `type` (enum)
        Values: `nested`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `enabled` (boolean)
      - `include_in_parent` (boolean)
      - `include_in_root` (boolean)
    - **type: object** (`type: object`)
      - `type` (enum)
        Values: `object`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `enabled` (boolean)
      - `subobjects` (enum)
        Values: `true`, `false`
    - **type: passthrough** (`type: passthrough`)
      - `type` (enum)
        Values: `passthrough`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `enabled` (boolean)
      - `priority` (number)
      - `time_series_dimension` (boolean)
    - **type: rank_vectors** (`type: rank_vectors`)
      Technical preview
      - `type` (enum)
        Values: `rank_vectors`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `element_type` (enum)
        Values: `byte`, `float`, `bit`
      - `dims` (number)
    - **type: semantic_text** (`type: semantic_text`)
      - `type` (enum)
        Values: `semantic_text`
      - `meta` (map string to string)
      - `inference_id` (string · default: .elser-2-elasticsearch)
        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.
      - `search_inference_id` (string)
        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.
      - `index_options` (object)
        Settings for index_options that override any defaults used by semantic_text, for example
specific quantization settings.
        - `dense_vector` (object)
          - `confidence_interval` (number)
            The confidence interval to use when quantizing the vectors. Can be any value between and including `0.90` and
`1.0` or exactly `0`. When the value is `0`, this indicates that dynamic quantiles should be calculated for
optimized quantization. When between `0.90` and `1.0`, this value restricts the values used when calculating
the quantization thresholds.

For example, a value of `0.95` will only use the middle `95%` of the values when calculating the quantization
thresholds (e.g. the highest and lowest `2.5%` of values will be ignored).

Defaults to `1/(dims + 1)` for `int8` quantized vectors and `0` for `int4` for dynamic quantile calculation.

Only applicable to `int8_hnsw`, `int4_hnsw`, `int8_flat`, and `int4_flat` index types.
          - `ef_construction` (number · default: 100)
            The number of candidates to track while assembling the list of nearest neighbors for each new node.

Only applicable to `hnsw`, `int8_hnsw`, `bbq_hnsw`, and `int4_hnsw` index types.
          - `m` (number · default: 16)
            The number of neighbors each node will be connected to in the HNSW graph.

Only applicable to `hnsw`, `int8_hnsw`, `bbq_hnsw`, and `int4_hnsw` index types.
          - `type` (enum)
            The type of kNN algorithm to use.

Supported values include:
  - `bbq_flat`: This utilizes a brute-force search algorithm in addition to automatically quantizing to binary vectors.
Only supports `element_type` of `float`.
  - `bbq_hnsw`: This utilizes the HNSW algorithm in addition to automatic binary quantization for scalable approximate kNN
search with `element_type` of `float`.

This can reduce the memory footprint by nearly 32x at the cost of some accuracy.
  - `flat`: This utilizes a brute-force search algorithm for exact kNN search. This supports all `element_type` values.
  - `hnsw`: This utilizes the HNSW algorithm for scalable approximate kNN search. This supports all `element_type` values.
  - `int4_flat`: This utilizes a brute-force search algorithm in addition to automatically half-byte scalar quantization.
Only supports `element_type` of `float`.
  - `int4_hnsw`: This utilizes the HNSW algorithm in addition to automatically scalar quantization for scalable approximate kNN
search with `element_type` of `float`.

This can reduce the memory footprint by 8x at the cost of some accuracy.
  - `int8_flat`: This utilizes a brute-force search algorithm in addition to automatically scalar quantization. Only supports
`element_type` of `float`.
  - `int8_hnsw`: The default index type for `float` vectors. This utilizes the HNSW algorithm in addition to automatically scalar
quantization for scalable approximate kNN search with `element_type` of `float`.

This can reduce the memory footprint by 4x at the cost of some accuracy.
            Values: `bbq_flat`, `bbq_hnsw`, `flat`, `hnsw`, `int4_flat`, `int4_hnsw`, `int8_flat`, `int8_hnsw`
      - `chunking_settings` (object)
        Settings for chunking text into smaller passages. If specified, these will override the
chunking settings sent in the inference endpoint associated with inference_id. If chunking settings are updated,
they will not be applied to existing documents until they are reindexed.
        - `strategy` (string · default: sentence)
          The chunking strategy: `sentence` or `word`.
        - `max_chunk_size` (number · default: 250)
          The maximum size of a chunk in words.
This value cannot be higher than `300` or lower than `20` (for `sentence` strategy) or `10` (for `word` strategy).
        - `overlap` (number · default: 100)
          The number of overlapping words for chunks.
It is applicable only to a `word` chunking strategy.
This value cannot be higher than half the `max_chunk_size` value.
        - `sentence_overlap` (number · default: 1)
          The number of overlapping sentences for chunks.
It is applicable only for a `sentence` chunking strategy.
It can be either `1` or `0`.
      - `fields` (map string to oneOf) — recursive
        Multi-fields allow the same string value to be indexed in multiple ways for different purposes, such as one
field for search and a multi-field for sorting and aggregations, or the same string value analyzed by different analyzers.
    - **type: sparse_vector** (`type: sparse_vector`)
      - `type` (enum)
        Values: `sparse_vector`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `store` (boolean)
      - `index_options` (object)
        Additional index options for the sparse vector field that controls the
token pruning behavior of the sparse vector field.
        - `prune` (boolean)
          Whether to perform pruning, omitting the non-significant tokens from the query to improve query performance.
If prune is true but the pruning_config is not specified, pruning will occur but default values will be used.
Default: false
        - `pruning_config` (object)
          Optional pruning configuration.
If enabled, this will omit non-significant tokens from the query in order to improve query performance.
This is only used if prune is set to true.
If prune is set to true but pruning_config is not specified, default values will be used.
          - `tokens_freq_ratio_threshold` (number · default: 5)
            Tokens whose frequency is more than this threshold times the average frequency of all tokens in the specified field are considered outliers and pruned.
          - `tokens_weight_threshold` (number · default: 0.4)
            Tokens whose weight is less than this threshold are considered nonsignificant and pruned.
          - `only_score_pruned_tokens` (boolean · default: false)
            Whether to only score pruned tokens, vs only scoring kept tokens.
    - **type: completion** (`type: completion`)
      - `type` (enum)
        Values: `completion`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `analyzer` (string)
      - `contexts` (object[])
        - `name` (string)
        - `path` (string)
        - `type` (string)
        - `precision` (number | string)
      - `max_input_length` (number)
      - `preserve_position_increments` (boolean)
      - `preserve_separators` (boolean)
      - `search_analyzer` (string)
    - **type: constant_keyword** (`type: constant_keyword`)
      - `type` (enum)
        Values: `constant_keyword`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `value` (object)
    - **type: counted_keyword** (`type: counted_keyword`)
      - `type` (enum)
        Values: `counted_keyword`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `index` (boolean)
    - **type: alias** (`type: alias`)
      - `type` (enum)
        Values: `alias`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `path` (string)
    - **type: histogram** (`type: histogram`)
      - `type` (enum)
        Values: `histogram`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `ignore_malformed` (boolean)
    - **type: ip** (`type: ip`)
      - `type` (enum)
        Values: `ip`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `index` (boolean)
      - `ignore_malformed` (boolean)
      - `null_value` (string)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_dimension` (boolean)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
    - **type: murmur3** (`type: murmur3`)
      - `type` (enum)
        Values: `murmur3`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
    - **type: token_count** (`type: token_count`)
      - `type` (enum)
        Values: `token_count`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `analyzer` (string)
      - `boost` (number)
      - `index` (boolean)
      - `null_value` (number)
      - `enable_position_increments` (boolean)
    - **type: geo_point** (`type: geo_point`)
      - `type` (enum)
        Values: `geo_point`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `ignore_malformed` (boolean)
      - `ignore_z_value` (boolean)
      - `null_value` (union oneOf)
        - **LatLonGeoLocation**
          - `lat` (number)
            Latitude
          - `lon` (number)
            Longitude
        - **GeoHashLocation**
          - `geohash` (string)
        - **[]number**
        - **string**
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        Values: `gauge`, `counter`, `position`
    - **type: geo_shape** (`type: geo_shape`)
      The `geo_shape` data type facilitates the indexing of and searching with arbitrary geo shapes such as rectangles
and polygons.
      - `type` (enum)
        Values: `geo_shape`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `ignore_z_value` (boolean)
      - `index` (boolean)
      - `orientation` (enum)
        Values: `right`, `RIGHT`, `counterclockwise`, `ccw`, `left`, `LEFT`, `clockwise`, `cw`
      - `strategy` (enum)
        Values: `recursive`, `term`
    - **type: point** (`type: point`)
      - `type` (enum)
        Values: `point`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `ignore_malformed` (boolean)
      - `ignore_z_value` (boolean)
      - `null_value` (string)
    - **type: shape** (`type: shape`)
      The `shape` data type facilitates the indexing of and searching with arbitrary `x, y` cartesian shapes such as
rectangles and polygons.
      - `type` (enum)
        Values: `shape`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `ignore_z_value` (boolean)
      - `orientation` (enum)
        Values: `right`, `RIGHT`, `counterclockwise`, `ccw`, `left`, `LEFT`, `clockwise`, `cw`
    - **type: byte** (`type: byte`)
      - `type` (enum)
        Values: `byte`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: double** (`type: double`)
      - `type` (enum)
        Values: `double`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: float** (`type: float`)
      - `type` (enum)
        Values: `float`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: half_float** (`type: half_float`)
      - `type` (enum)
        Values: `half_float`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: integer** (`type: integer`)
      - `type` (enum)
        Values: `integer`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: long** (`type: long`)
      - `type` (enum)
        Values: `long`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: scaled_float** (`type: scaled_float`)
      - `type` (enum)
        Values: `scaled_float`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
      - `scaling_factor` (number)
    - **type: short** (`type: short`)
      - `type` (enum)
        Values: `short`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: unsigned_long** (`type: unsigned_long`)
      - `type` (enum)
        Values: `unsigned_long`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `ignore_malformed` (boolean)
      - `index` (boolean)
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `script` (string)
      - `time_series_metric` (enum)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
        Values: `gauge`, `counter`, `summary`, `histogram`, `position`
      - `time_series_dimension` (boolean · default: false)
        For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.
      - `null_value` (number)
    - **type: date_range** (`type: date_range`)
      - `type` (enum)
        Values: `date_range`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `index` (boolean)
      - `format` (string)
    - **type: double_range** (`type: double_range`)
      - `type` (enum)
        Values: `double_range`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `index` (boolean)
    - **type: float_range** (`type: float_range`)
      - `type` (enum)
        Values: `float_range`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `index` (boolean)
    - **type: integer_range** (`type: integer_range`)
      - `type` (enum)
        Values: `integer_range`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `index` (boolean)
    - **type: ip_range** (`type: ip_range`)
      - `type` (enum)
        Values: `ip_range`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `index` (boolean)
    - **type: long_range** (`type: long_range`)
      - `type` (enum)
        Values: `long_range`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `boost` (number)
      - `coerce` (boolean)
      - `index` (boolean)
    - **type: icu_collation_keyword** (`type: icu_collation_keyword`)
      - `type` (enum)
        Values: `icu_collation_keyword`
      - `meta` (map string to string)
        Metadata about the field.
      - `properties` (map string to oneOf) — recursive
      - `ignore_above` (number)
      - `dynamic` (enum)
        Values: `strict`, `runtime`, `true`, `false`
      - `fields` (map string to oneOf) — recursive
      - `synthetic_source_keep` (enum)
        

Supported values include:
  - `none`: Synthetic source diverges from the original source (default)
  - `arrays`: Arrays of the corresponding field or object preserve the original element ordering and duplicate elements.
The synthetic source fragment for such arrays is not guaranteed to match the original source exactly,
e.g. array [1, 2, [5], [[4, [3]]], 5] may appear as-is or in an equivalent format like [1, 2, 5, 4, 3, 5].
The exact format may change in the future, in an effort to reduce the storage overhead of this option.
  - `all`: The source for both singleton instances and arrays of the corresponding field or object gets recorded.
When applied to objects, the source of all sub-objects and sub-fields gets captured.
Furthermore, the original source of arrays gets captured and appears in synthetic source with no modifications.
        Values: `none`, `arrays`, `all`
      - `copy_to` (union oneOf)
        One of: `string[]` or `string`
      - `store` (boolean)
      - `doc_values` (boolean)
      - `norms` (boolean)
      - `index_options` (enum)
        Values: `docs`, `freqs`, `positions`, `offsets`
      - `index` (boolean)
        Should the field be searchable?
      - `null_value` (string)
        Accepts a string value which is substituted for any explicit null values. Defaults to null, which means the field is treated as missing.
      - `rules` (string)
      - `language` (string)
      - `country` (string)
      - `variant` (string)
      - `strength` (enum)
        Values: `primary`, `secondary`, `tertiary`, `quaternary`, `identical`
      - `decomposition` (enum)
        Values: `no`, `identical`
      - `alternate` (enum)
        Values: `shifted`, `non-ignorable`
      - `case_level` (boolean)
      - `case_first` (enum)
        Values: `lower`, `upper`
      - `numeric` (boolean)
      - `variable_top` (string)
      - `hiragana_quaternary_mode` (boolean)
  - `_routing` (object)
    - `required` (boolean)
  - `_size` (object)
    - `enabled` (boolean)
  - `_source` (object)
    - `compress` (boolean)
    - `compress_threshold` (string)
    - `enabled` (boolean)
    - `excludes` (string[])
    - `includes` (string[])
    - `mode` (enum)
      

Supported values include:
  - `disabled`
  - `stored`
  - `synthetic`: Instead of storing source documents on disk exactly as you send them,
 Elasticsearch can reconstruct source content on the fly upon retrieval.
      Values: `disabled`, `stored`, `synthetic`
  - `runtime` (map string to object)
    Map values (object)
    - `fields` (map string to object)
      For type `composite`
      Map values (object)
      - `type` (enum)
        Values: `boolean`, `composite`, `date`, `double`, `geo_point`, `geo_shape`, `ip`, `keyword`, `long`, `lookup`
    - `fetch_fields` (object[])
      For type `lookup`
      - `field` (string)
      - `format` (string)
    - `format` (string)
      A custom format for `date` type runtime fields.
    - `input_field` (string)
      For type `lookup`
    - `target_field` (string)
      For type `lookup`
    - `target_index` (string)
      For type `lookup`
    - `script` (string)
      Painless script executed at query time.
    - `on_script_error` (enum)
      Values: `fail`, `continue`
    - `type` (enum)
      Field type, which can be: `boolean`, `composite`, `date`, `double`, `geo_point`, `ip`,`keyword`, `long`, or `lookup`.
      Values: `boolean`, `composite`, `date`, `double`, `geo_point`, `geo_shape`, `ip`, `keyword`, `long`, `lookup`
  - `enabled` (boolean)
  - `subobjects` (enum)
    Values: `true`, `false`
  - `_data_stream_timestamp` (object)
    - `enabled` (boolean)
- `quote` (string)
- `delimiter` (string)
- `need_client_timezone` (boolean)
  If a timestamp format is detected that does not include a timezone, `need_client_timezone` is `true`.
The server that parses the text must therefore be told the correct timezone by the client.
- `num_lines_analyzed` (number)
  The number of lines of the text that were analyzed.
- `column_names` (string[])
  If `format` is `delimited`, the `column_names` field lists the column names in the order they appear in the sample.
- `explanation` (string[])
- `grok_pattern` (string)
- `multiline_start_pattern` (string)
- `exclude_lines_pattern` (string)
- `java_timestamp_formats` (string[])
  The Java time formats recognized in the time fields.
Elasticsearch mappings and ingest pipelines use this format.
- `joda_timestamp_formats` (string[])
  Information that is used to tell Logstash how to parse timestamps.
- `timestamp_field` (string)
  The field considered most likely to be the primary timestamp of each document.
- `should_trim_fields` (boolean)
- `ingest_pipeline` (object)
  - `description` (string)
    Description of the ingest pipeline.
  - `version` (number)
    Version number used by external systems to track ingest pipelines.
  - `processors` ({} Processor[])
    Processors used to perform transformations on documents before indexing.
Processors run sequentially in the order specified.
    See [Processor](https://www.elastic.co/docs/api/doc/elasticsearch/v8/types/ingest-_types-processorcontainer)
## Code examples

#### Console

```console
POST _text_structure/find_structure
{"name": "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561}
{"name": "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482}
{"name": "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604}
{"name": "Dune Messiah", "author": "Frank Herbert", "release_date": "1969-10-15", "page_count": 331}
{"name": "Children of Dune", "author": "Frank Herbert", "release_date": "1976-04-21", "page_count": 408}
{"name": "God Emperor of Dune", "author": "Frank Herbert", "release_date": "1981-05-28", "page_count": 454}
{"name": "Consider Phlebas", "author": "Iain M. Banks", "release_date": "1987-04-23", "page_count": 471}
{"name": "Pandora's Star", "author": "Peter F. Hamilton", "release_date": "2004-03-02", "page_count": 768}
{"name": "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585}
{"name": "A Fire Upon the Deep", "author": "Vernor Vinge", "release_date": "1992-06-01", "page_count": 613}
{"name": "Ender's Game", "author": "Orson Scott Card", "release_date": "1985-06-01", "page_count": 324}
{"name": "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328}
{"name": "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227}
{"name": "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268}
{"name": "Foundation", "author": "Isaac Asimov", "release_date": "1951-06-01", "page_count": 224}
{"name": "The Giver", "author": "Lois Lowry", "release_date": "1993-04-26", "page_count": 208}
{"name": "Slaughterhouse-Five", "author": "Kurt Vonnegut", "release_date": "1969-06-01", "page_count": 275}
{"name": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "release_date": "1979-10-12", "page_count": 180}
{"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470}
{"name": "Neuromancer", "author": "William Gibson", "release_date": "1984-07-01", "page_count": 271}
{"name": "The Handmaid's Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311}
{"name": "Starship Troopers", "author": "Robert A. Heinlein", "release_date": "1959-12-01", "page_count": 335}
{"name": "The Left Hand of Darkness", "author": "Ursula K. Le Guin", "release_date": "1969-06-01", "page_count": 304}
{"name": "The Moon is a Harsh Mistress", "author": "Robert A. Heinlein", "release_date": "1966-04-01", "page_count": 288}
```

#### JavaScript

```javascript
const response = await client.textStructure.findStructure({
  text_files: [
    {
      name: "Leviathan Wakes",
      author: "James S.A. Corey",
      release_date: "2011-06-02",
      page_count: 561,
    },
    {
      name: "Hyperion",
      author: "Dan Simmons",
      release_date: "1989-05-26",
      page_count: 482,
    },
    {
      name: "Dune",
      author: "Frank Herbert",
      release_date: "1965-06-01",
      page_count: 604,
    },
    {
      name: "Dune Messiah",
      author: "Frank Herbert",
      release_date: "1969-10-15",
      page_count: 331,
    },
    {
      name: "Children of Dune",
      author: "Frank Herbert",
      release_date: "1976-04-21",
      page_count: 408,
    },
    {
      name: "God Emperor of Dune",
      author: "Frank Herbert",
      release_date: "1981-05-28",
      page_count: 454,
    },
    {
      name: "Consider Phlebas",
      author: "Iain M. Banks",
      release_date: "1987-04-23",
      page_count: 471,
    },
    {
      name: "Pandora's Star",
      author: "Peter F. Hamilton",
      release_date: "2004-03-02",
      page_count: 768,
    },
    {
      name: "Revelation Space",
      author: "Alastair Reynolds",
      release_date: "2000-03-15",
      page_count: 585,
    },
    {
      name: "A Fire Upon the Deep",
      author: "Vernor Vinge",
      release_date: "1992-06-01",
      page_count: 613,
    },
    {
      name: "Ender's Game",
      author: "Orson Scott Card",
      release_date: "1985-06-01",
      page_count: 324,
    },
    {
      name: "1984",
      author: "George Orwell",
      release_date: "1985-06-01",
      page_count: 328,
    },
    {
      name: "Fahrenheit 451",
      author: "Ray Bradbury",
      release_date: "1953-10-15",
      page_count: 227,
    },
    {
      name: "Brave New World",
      author: "Aldous Huxley",
      release_date: "1932-06-01",
      page_count: 268,
    },
    {
      name: "Foundation",
      author: "Isaac Asimov",
      release_date: "1951-06-01",
      page_count: 224,
    },
    {
      name: "The Giver",
      author: "Lois Lowry",
      release_date: "1993-04-26",
      page_count: 208,
    },
    {
      name: "Slaughterhouse-Five",
      author: "Kurt Vonnegut",
      release_date: "1969-06-01",
      page_count: 275,
    },
    {
      name: "The Hitchhiker's Guide to the Galaxy",
      author: "Douglas Adams",
      release_date: "1979-10-12",
      page_count: 180,
    },
    {
      name: "Snow Crash",
      author: "Neal Stephenson",
      release_date: "1992-06-01",
      page_count: 470,
    },
    {
      name: "Neuromancer",
      author: "William Gibson",
      release_date: "1984-07-01",
      page_count: 271,
    },
    {
      name: "The Handmaid's Tale",
      author: "Margaret Atwood",
      release_date: "1985-06-01",
      page_count: 311,
    },
    {
      name: "Starship Troopers",
      author: "Robert A. Heinlein",
      release_date: "1959-12-01",
      page_count: 335,
    },
    {
      name: "The Left Hand of Darkness",
      author: "Ursula K. Le Guin",
      release_date: "1969-06-01",
      page_count: 304,
    },
    {
      name: "The Moon is a Harsh Mistress",
      author: "Robert A. Heinlein",
      release_date: "1966-04-01",
      page_count: 288,
    },
  ],
});
```

#### Python

```python
resp = client.text_structure.find_structure(
    text_files=[
        {
            "name": "Leviathan Wakes",
            "author": "James S.A. Corey",
            "release_date": "2011-06-02",
            "page_count": 561
        },
        {
            "name": "Hyperion",
            "author": "Dan Simmons",
            "release_date": "1989-05-26",
            "page_count": 482
        },
        {
            "name": "Dune",
            "author": "Frank Herbert",
            "release_date": "1965-06-01",
            "page_count": 604
        },
        {
            "name": "Dune Messiah",
            "author": "Frank Herbert",
            "release_date": "1969-10-15",
            "page_count": 331
        },
        {
            "name": "Children of Dune",
            "author": "Frank Herbert",
            "release_date": "1976-04-21",
            "page_count": 408
        },
        {
            "name": "God Emperor of Dune",
            "author": "Frank Herbert",
            "release_date": "1981-05-28",
            "page_count": 454
        },
        {
            "name": "Consider Phlebas",
            "author": "Iain M. Banks",
            "release_date": "1987-04-23",
            "page_count": 471
        },
        {
            "name": "Pandora's Star",
            "author": "Peter F. Hamilton",
            "release_date": "2004-03-02",
            "page_count": 768
        },
        {
            "name": "Revelation Space",
            "author": "Alastair Reynolds",
            "release_date": "2000-03-15",
            "page_count": 585
        },
        {
            "name": "A Fire Upon the Deep",
            "author": "Vernor Vinge",
            "release_date": "1992-06-01",
            "page_count": 613
        },
        {
            "name": "Ender's Game",
            "author": "Orson Scott Card",
            "release_date": "1985-06-01",
            "page_count": 324
        },
        {
            "name": "1984",
            "author": "George Orwell",
            "release_date": "1985-06-01",
            "page_count": 328
        },
        {
            "name": "Fahrenheit 451",
            "author": "Ray Bradbury",
            "release_date": "1953-10-15",
            "page_count": 227
        },
        {
            "name": "Brave New World",
            "author": "Aldous Huxley",
            "release_date": "1932-06-01",
            "page_count": 268
        },
        {
            "name": "Foundation",
            "author": "Isaac Asimov",
            "release_date": "1951-06-01",
            "page_count": 224
        },
        {
            "name": "The Giver",
            "author": "Lois Lowry",
            "release_date": "1993-04-26",
            "page_count": 208
        },
        {
            "name": "Slaughterhouse-Five",
            "author": "Kurt Vonnegut",
            "release_date": "1969-06-01",
            "page_count": 275
        },
        {
            "name": "The Hitchhiker's Guide to the Galaxy",
            "author": "Douglas Adams",
            "release_date": "1979-10-12",
            "page_count": 180
        },
        {
            "name": "Snow Crash",
            "author": "Neal Stephenson",
            "release_date": "1992-06-01",
            "page_count": 470
        },
        {
            "name": "Neuromancer",
            "author": "William Gibson",
            "release_date": "1984-07-01",
            "page_count": 271
        },
        {
            "name": "The Handmaid's Tale",
            "author": "Margaret Atwood",
            "release_date": "1985-06-01",
            "page_count": 311
        },
        {
            "name": "Starship Troopers",
            "author": "Robert A. Heinlein",
            "release_date": "1959-12-01",
            "page_count": 335
        },
        {
            "name": "The Left Hand of Darkness",
            "author": "Ursula K. Le Guin",
            "release_date": "1969-06-01",
            "page_count": 304
        },
        {
            "name": "The Moon is a Harsh Mistress",
            "author": "Robert A. Heinlein",
            "release_date": "1966-04-01",
            "page_count": 288
        }
    ],
)
```

#### curl

```curl
curl -X POST "$ELASTICSEARCH_URL/_text_structure/find_structure" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY" \
  -H "Content-Type: application/x-ndjson" \
  -d $'{"name":"Leviathan \
  Wakes","author":"James \
  S.A. \
  Corey","release_date":"2011-06-02","page_count":561}\n{"name":"Hyperion","author":"Dan \
  Simmons","release_date":"1989-05-26","page_count":482}\n{"name":"Dune","author":"Frank \
  Herbert","release_date":"1965-06-01","page_count":604}\n{"name":"Dune \
  Messiah","author":"Frank \
  Herbert","release_date":"1969-10-15","page_count":331}\n{"name":"Children \
  of \
  Dune","author":"Frank \
  Herbert","release_date":"1976-04-21","page_count":408}\n{"name":"God \
  Emperor \
  of \
  Dune","author":"Frank \
  Herbert","release_date":"1981-05-28","page_count":454}\n{"name":"Consider \
  Phlebas","author":"Iain \
  M. \
  Banks","release_date":"1987-04-23","page_count":471}\n{"name":"Pandora'"'"$'s \
  Star","author":"Peter \
  F. \
  Hamilton","release_date":"2004-03-02","page_count":768}\n{"name":"Revelation \
  Space","author":"Alastair \
  Reynolds","release_date":"2000-03-15","page_count":585}\n{"name":"A \
  Fire \
  Upon \
  the \
  Deep","author":"Vernor \
  Vinge","release_date":"1992-06-01","page_count":613}\n{"name":"Ender'"'"$'s \
  Game","author":"Orson \
  Scott \
  Card","release_date":"1985-06-01","page_count":324}\n{"name":"1984","author":"George \
  Orwell","release_date":"1985-06-01","page_count":328}\n{"name":"Fahrenheit \
  451","author":"Ray \
  Bradbury","release_date":"1953-10-15","page_count":227}\n{"name":"Brave \
  New \
  World","author":"Aldous \
  Huxley","release_date":"1932-06-01","page_count":268}\n{"name":"Foundation","author":"Isaac \
  Asimov","release_date":"1951-06-01","page_count":224}\n{"name":"The \
  Giver","author":"Lois \
  Lowry","release_date":"1993-04-26","page_count":208}\n{"name":"Slaughterhouse-Five","author":"Kurt \
  Vonnegut","release_date":"1969-06-01","page_count":275}\n{"name":"The \
  Hitchhiker'"'"$'s \
  Guide \
  to \
  the \
  Galaxy","author":"Douglas \
  Adams","release_date":"1979-10-12","page_count":180}\n{"name":"Snow \
  Crash","author":"Neal \
  Stephenson","release_date":"1992-06-01","page_count":470}\n{"name":"Neuromancer","author":"William \
  Gibson","release_date":"1984-07-01","page_count":271}\n{"name":"The \
  Handmaid'"'"$'s \
  Tale","author":"Margaret \
  Atwood","release_date":"1985-06-01","page_count":311}\n{"name":"Starship \
  Troopers","author":"Robert \
  A. \
  Heinlein","release_date":"1959-12-01","page_count":335}\n{"name":"The \
  Left \
  Hand \
  of \
  Darkness","author":"Ursula \
  K. \
  Le \
  Guin","release_date":"1969-06-01","page_count":304}\n{"name":"The \
  Moon \
  is \
  a \
  Harsh \
  Mistress","author":"Robert \
  A. \
  Heinlein","release_date":"1966-04-01","page_count":288}\n'
```

#### PHP

```php
$resp = $client->textStructure()->findStructure([
    "body" => array(
        [
            "name" => "Leviathan Wakes",
            "author" => "James S.A. Corey",
            "release_date" => "2011-06-02",
            "page_count" => 561,
        ],
        [
            "name" => "Hyperion",
            "author" => "Dan Simmons",
            "release_date" => "1989-05-26",
            "page_count" => 482,
        ],
        [
            "name" => "Dune",
            "author" => "Frank Herbert",
            "release_date" => "1965-06-01",
            "page_count" => 604,
        ],
        [
            "name" => "Dune Messiah",
            "author" => "Frank Herbert",
            "release_date" => "1969-10-15",
            "page_count" => 331,
        ],
        [
            "name" => "Children of Dune",
            "author" => "Frank Herbert",
            "release_date" => "1976-04-21",
            "page_count" => 408,
        ],
        [
            "name" => "God Emperor of Dune",
            "author" => "Frank Herbert",
            "release_date" => "1981-05-28",
            "page_count" => 454,
        ],
        [
            "name" => "Consider Phlebas",
            "author" => "Iain M. Banks",
            "release_date" => "1987-04-23",
            "page_count" => 471,
        ],
        [
            "name" => "Pandora's Star",
            "author" => "Peter F. Hamilton",
            "release_date" => "2004-03-02",
            "page_count" => 768,
        ],
        [
            "name" => "Revelation Space",
            "author" => "Alastair Reynolds",
            "release_date" => "2000-03-15",
            "page_count" => 585,
        ],
        [
            "name" => "A Fire Upon the Deep",
            "author" => "Vernor Vinge",
            "release_date" => "1992-06-01",
            "page_count" => 613,
        ],
        [
            "name" => "Ender's Game",
            "author" => "Orson Scott Card",
            "release_date" => "1985-06-01",
            "page_count" => 324,
        ],
        [
            "name" => "1984",
            "author" => "George Orwell",
            "release_date" => "1985-06-01",
            "page_count" => 328,
        ],
        [
            "name" => "Fahrenheit 451",
            "author" => "Ray Bradbury",
            "release_date" => "1953-10-15",
            "page_count" => 227,
        ],
        [
            "name" => "Brave New World",
            "author" => "Aldous Huxley",
            "release_date" => "1932-06-01",
            "page_count" => 268,
        ],
        [
            "name" => "Foundation",
            "author" => "Isaac Asimov",
            "release_date" => "1951-06-01",
            "page_count" => 224,
        ],
        [
            "name" => "The Giver",
            "author" => "Lois Lowry",
            "release_date" => "1993-04-26",
            "page_count" => 208,
        ],
        [
            "name" => "Slaughterhouse-Five",
            "author" => "Kurt Vonnegut",
            "release_date" => "1969-06-01",
            "page_count" => 275,
        ],
        [
            "name" => "The Hitchhiker's Guide to the Galaxy",
            "author" => "Douglas Adams",
            "release_date" => "1979-10-12",
            "page_count" => 180,
        ],
        [
            "name" => "Snow Crash",
            "author" => "Neal Stephenson",
            "release_date" => "1992-06-01",
            "page_count" => 470,
        ],
        [
            "name" => "Neuromancer",
            "author" => "William Gibson",
            "release_date" => "1984-07-01",
            "page_count" => 271,
        ],
        [
            "name" => "The Handmaid's Tale",
            "author" => "Margaret Atwood",
            "release_date" => "1985-06-01",
            "page_count" => 311,
        ],
        [
            "name" => "Starship Troopers",
            "author" => "Robert A. Heinlein",
            "release_date" => "1959-12-01",
            "page_count" => 335,
        ],
        [
            "name" => "The Left Hand of Darkness",
            "author" => "Ursula K. Le Guin",
            "release_date" => "1969-06-01",
            "page_count" => 304,
        ],
        [
            "name" => "The Moon is a Harsh Mistress",
            "author" => "Robert A. Heinlein",
            "release_date" => "1966-04-01",
            "page_count" => 288,
        ],
    ),
]);
```

#### Ruby

```ruby
response = client.text_structure.find_structure(
  body: [
    {
      "name": "Leviathan Wakes",
      "author": "James S.A. Corey",
      "release_date": "2011-06-02",
      "page_count": 561
    },
    {
      "name": "Hyperion",
      "author": "Dan Simmons",
      "release_date": "1989-05-26",
      "page_count": 482
    },
    {
      "name": "Dune",
      "author": "Frank Herbert",
      "release_date": "1965-06-01",
      "page_count": 604
    },
    {
      "name": "Dune Messiah",
      "author": "Frank Herbert",
      "release_date": "1969-10-15",
      "page_count": 331
    },
    {
      "name": "Children of Dune",
      "author": "Frank Herbert",
      "release_date": "1976-04-21",
      "page_count": 408
    },
    {
      "name": "God Emperor of Dune",
      "author": "Frank Herbert",
      "release_date": "1981-05-28",
      "page_count": 454
    },
    {
      "name": "Consider Phlebas",
      "author": "Iain M. Banks",
      "release_date": "1987-04-23",
      "page_count": 471
    },
    {
      "name": "Pandora's Star",
      "author": "Peter F. Hamilton",
      "release_date": "2004-03-02",
      "page_count": 768
    },
    {
      "name": "Revelation Space",
      "author": "Alastair Reynolds",
      "release_date": "2000-03-15",
      "page_count": 585
    },
    {
      "name": "A Fire Upon the Deep",
      "author": "Vernor Vinge",
      "release_date": "1992-06-01",
      "page_count": 613
    },
    {
      "name": "Ender's Game",
      "author": "Orson Scott Card",
      "release_date": "1985-06-01",
      "page_count": 324
    },
    {
      "name": "1984",
      "author": "George Orwell",
      "release_date": "1985-06-01",
      "page_count": 328
    },
    {
      "name": "Fahrenheit 451",
      "author": "Ray Bradbury",
      "release_date": "1953-10-15",
      "page_count": 227
    },
    {
      "name": "Brave New World",
      "author": "Aldous Huxley",
      "release_date": "1932-06-01",
      "page_count": 268
    },
    {
      "name": "Foundation",
      "author": "Isaac Asimov",
      "release_date": "1951-06-01",
      "page_count": 224
    },
    {
      "name": "The Giver",
      "author": "Lois Lowry",
      "release_date": "1993-04-26",
      "page_count": 208
    },
    {
      "name": "Slaughterhouse-Five",
      "author": "Kurt Vonnegut",
      "release_date": "1969-06-01",
      "page_count": 275
    },
    {
      "name": "The Hitchhiker's Guide to the Galaxy",
      "author": "Douglas Adams",
      "release_date": "1979-10-12",
      "page_count": 180
    },
    {
      "name": "Snow Crash",
      "author": "Neal Stephenson",
      "release_date": "1992-06-01",
      "page_count": 470
    },
    {
      "name": "Neuromancer",
      "author": "William Gibson",
      "release_date": "1984-07-01",
      "page_count": 271
    },
    {
      "name": "The Handmaid's Tale",
      "author": "Margaret Atwood",
      "release_date": "1985-06-01",
      "page_count": 311
    },
    {
      "name": "Starship Troopers",
      "author": "Robert A. Heinlein",
      "release_date": "1959-12-01",
      "page_count": 335
    },
    {
      "name": "The Left Hand of Darkness",
      "author": "Ursula K. Le Guin",
      "release_date": "1969-06-01",
      "page_count": 304
    },
    {
      "name": "The Moon is a Harsh Mistress",
      "author": "Robert A. Heinlein",
      "release_date": "1966-04-01",
      "page_count": 288
    }
  ]
)
```

## Response examples

#### Find structure response example1

`application/json`

A successful response from `POST _text_structure/find_structure`.

```json
{
  "num_lines_analyzed" : 24,
  "num_messages_analyzed" : 24,
  "sample_start" : "{\"name\": \"Leviathan Wakes\", \"author\": \"James S.A. Corey\", \"release_date\": \"2011-06-02\", \"page_count\": 561}\n{\"name\": \"Hyperion\", \"author\": \"Dan Simmons\", \"release_date\": \"1989-05-26\", \"page_count\": 482}\n",
  "charset" : "UTF-8",
  "has_byte_order_marker" : false,
  "format" : "ndjson",
  "ecs_compatibility" : "disabled",
  "timestamp_field" : "release_date",
  "joda_timestamp_formats" : [
    "ISO8601"
  ],
  "java_timestamp_formats" : [
    "ISO8601"
  ],
  "need_client_timezone" : true,
  "mappings" : {
    "properties" : {
      "@timestamp" : {
        "type" : "date"
      },
      "author" : {
        "type" : "keyword"
      },
      "name" : {
        "type" : "keyword"
      },
      "page_count" : {
        "type" : "long"
      },
      "release_date" : {
        "type" : "date",
        "format" : "iso8601"
      }
    }
  },
  "ingest_pipeline" : {
    "description" : "Ingest pipeline created by text structure finder",
    "processors" : [
      {
        "date" : {
          "field" : "release_date",
          "timezone" : "{{ event.timezone }}",
          "formats" : [
            "ISO8601"
          ]
        }
      }
    ]
  },
  "field_stats" : {
    "author" : {
      "count" : 24,
      "cardinality" : 20,
      "top_hits" : [
        {
          "value" : "Frank Herbert",
          "count" : 4
        },
        {
          "value" : "Robert A. Heinlein",
          "count" : 2
        },
        {
          "value" : "Alastair Reynolds",
          "count" : 1
        },
        {
          "value" : "Aldous Huxley",
          "count" : 1
        },
        {
          "value" : "Dan Simmons",
          "count" : 1
        },
        {
          "value" : "Douglas Adams",
          "count" : 1
        },
        {
          "value" : "George Orwell",
          "count" : 1
        },
        {
          "value" : "Iain M. Banks",
          "count" : 1
        },
        {
          "value" : "Isaac Asimov",
          "count" : 1
        },
        {
          "value" : "James S.A. Corey",
          "count" : 1
        }
      ]
    },
    "name" : {
      "count" : 24,
      "cardinality" : 24,
      "top_hits" : [
        {
          "value" : "1984",
          "count" : 1
        },
        {
          "value" : "A Fire Upon the Deep",
          "count" : 1
        },
        {
          "value" : "Brave New World",
          "count" : 1
        },
        {
          "value" : "Children of Dune",
          "count" : 1
        },
        {
          "value" : "Consider Phlebas",
          "count" : 1
        },
        {
          "value" : "Dune",
          "count" : 1
        },
        {
          "value" : "Dune Messiah",
          "count" : 1
        },
        {
          "value" : "Ender's Game",
          "count" : 1
        },
        {
          "value" : "Fahrenheit 451",
          "count" : 1
        },
        {
          "value" : "Foundation",
          "count" : 1
        }
      ]
    },
    "page_count" : {
      "count" : 24,
      "cardinality" : 24,
      "min_value" : 180,
      "max_value" : 768,
      "mean_value" : 387.0833333333333,
      "median_value" : 329.5,
      "top_hits" : [
        {
          "value" : 180,
          "count" : 1
        },
        {
          "value" : 208,
          "count" : 1
        },
        {
          "value" : 224,
          "count" : 1
        },
        {
          "value" : 227,
          "count" : 1
        },
        {
          "value" : 268,
          "count" : 1
        },
        {
          "value" : 271,
          "count" : 1
        },
        {
          "value" : 275,
          "count" : 1
        },
        {
          "value" : 288,
          "count" : 1
        },
        {
          "value" : 304,
          "count" : 1
        },
        {
          "value" : 311,
          "count" : 1
        }
      ]
    },
    "release_date" : {
      "count" : 24,
      "cardinality" : 20,
      "earliest" : "1932-06-01",
      "latest" : "2011-06-02",
      "top_hits" : [
        {
          "value" : "1985-06-01",
          "count" : 3
        },
        {
          "value" : "1969-06-01",
          "count" : 2
        },
        {
          "value" : "1992-06-01",
          "count" : 2
        },
        {
          "value" : "1932-06-01",
          "count" : 1
        },
        {
          "value" : "1951-06-01",
          "count" : 1
        },
        {
          "value" : "1953-10-15",
          "count" : 1
        },
        {
          "value" : "1959-12-01",
          "count" : 1
        },
        {
          "value" : "1965-06-01",
          "count" : 1
        },
        {
          "value" : "1966-04-01",
          "count" : 1
        },
        {
          "value" : "1969-10-15",
          "count" : 1
        }
      ]
    }
  }
}
```

