diff --git a/_field-types/mapping-parameters/format.md b/_field-types/mapping-parameters/format.md new file mode 100644 index 0000000000..0b2be9f457 --- /dev/null +++ b/_field-types/mapping-parameters/format.md @@ -0,0 +1,88 @@ +--- +layout: default +title: Format +parent: Mapping parameters +grand_parent: Mapping and field types +nav_order: 50 +has_children: false +has_toc: false +--- + +# Format + +The `format` mapping parameter specifies the [built-in date formats]({{site.url}}{{site.baseurl}}/field-types/supported-field-types/date/#built-in-formats) that a date field can accept during indexing. By defining the expected date formats, you ensure that date values are correctly parsed and stored, facilitating accurate search and aggregation operations. + +## Example: Defining a custom date format + +Create an `events` index with the `event_date` field configured to a custom `yyyy-MM-dd HH:mm:ss` date format: + +```json +PUT events +{ + "mappings": { + "properties": { + "event_date": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss" + } + } + } +} +``` +{% include copy-curl.html %} + +Index a document using the specified format for the `event_date` field: + +```json +PUT events/_doc/1 +{ + "event_name": "Conference", + "event_date": "2025-03-26 15:30:00" +} +``` +{% include copy-curl.html %} + +## Example: Using multiple date formats + +Create an index containing a `log_timestamp` field, which accepts both the custom `yyyy-MM-dd HH:mm:ss` date format and the `epoch_millis` format: + +```json +PUT logs +{ + "mappings": { + "properties": { + "log_timestamp": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss||epoch_millis" + } + } + } +} +``` +{% include copy-curl.html %} + +Index the first document using the custom format: + +```json +PUT logs/_doc/1 +{ + "message": "System rebooted", + "log_timestamp": "2025-03-26 08:45:00" +} +``` +{% include copy-curl.html %} + +Index the second document using the millisecond format: + +```json +PUT logs/_doc/2 +{ + "message": "System updated", + "log_timestamp": 1711442700000 +} +``` +{% include copy-curl.html %} + +## Built-in date formats + +For a comprehensive list of built-in date formats, see [Built-in formats]({{site.url}}{{site.baseurl}}/field-types/supported-field-types/date/#built-in-formats). \ No newline at end of file diff --git a/_field-types/mapping-parameters/index.md b/_field-types/mapping-parameters/index.md index a9b60c03d4..a3936bcfbf 100644 --- a/_field-types/mapping-parameters/index.md +++ b/_field-types/mapping-parameters/index.md @@ -14,14 +14,14 @@ The following table lists OpenSearch mapping parameters. Parameter | Description :--- | :--- -`analyzer` | Specifies the analyzer used to analyze string fields. Default is the `standard` analyzer, which is a general-purpose analyzer that splits text on white space and punctuation, converts to lowercase, and removes stop words. Allowed values are `standard`, `simple`, and `whitespace`. -`boost` | Specifies a field-level boost factor applied at query time. Allows you to increase or decrease the relevance score of a specific field during search queries. Default boost value is `1.0`, which means no boost is applied. Allowed values are any positive floating-point number. -`coerce` | Controls how values are converted to the expected field data type during indexing. Default value is `true`, which means that OpenSearch tries to coerce the value to the expected value type. Allowed values are `true` or `false`. -`copy_to` | Copies the value of a field to another field. There is no default value for this parameter. Optional. -`doc_values` | Specifies whether a field should be stored on disk to make sorting and aggregation faster. Default value is `true`, which means that the doc values are enabled. Allowed values are a single field name or a list of field names. -`dynamic` | Determines whether new fields should be added dynamically. Default value is `true`, which means that new fields can be added dynamically. Allowed values are `true`, `false`, or `strict`. -`enabled` | Specifies whether the field is enabled or disabled. Default value is `true`, which means that the field is enabled. Allowed values are `true` or `false`. -`format` | Specifies the date format for date fields. There is no default value for this parameter. Allowed values are any valid date format string, such as `yyyy-MM-dd` or `epoch_millis`. +[`analyzer`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/analyzer/) | Specifies the analyzer used to analyze string fields. Default is the `standard` analyzer, which is a general-purpose analyzer that splits text on white space and punctuation, converts to lowercase, and removes stop words. Allowed values are `standard`, `simple`, or `whitespace`. +[`boost`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/boost/) | Specifies a field-level boost factor applied at query time. Allows you to increase or decrease the relevance score of a specific field during search queries. Default boost value is `1.0`, which means that no boost is applied. Allowed values are any positive floating-point number. +[`coerce`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/coerce/) | Controls how values are converted to the expected field data type during indexing. Default value is `true`, which means that OpenSearch tries to coerce the value to the expected value type. Allowed values are `true` or `false`. +[`copy_to`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/copy-to/) | Copies the value of a field to another field. There is no default value for this parameter. Optional. +[`doc_values`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/doc-values/) | Specifies whether a field should be stored on disk to make sorting and aggregation faster. Default value is `true`, which means that the doc values are enabled. Allowed values are a single field name or a list of field names. +[`dynamic`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/dynamic/) | Determines whether new fields should be added dynamically. Default value is `true`, which means that new fields can be added dynamically. Allowed values are `true`, `false`, or `strict`. +[`enabled`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/enabled/) | Specifies whether the field is enabled or disabled. Default value is `true`, which means that the field is enabled. Allowed values are `true` or `false`. +[`format`]({{site.url}}{{site.baseurl}}/field-types/mapping-parameters/format/) | Specifies the date format for date fields. There is no default value for this parameter. Allowed values are any valid date format string, such as `yyyy-MM-dd` or `epoch_millis`. `ignore_above` | Skips indexing values that exceed the specified length. Default value is `2147483647`, which means that there is no limit on the field value length. Allowed values are any positive integer. `ignore_malformed` | Specifies whether malformed values should be ignored. Default value is `false`, which means that malformed values are not ignored. Allowed values are `true` or `false`. `index` | Specifies whether a field should be indexed. Default value is `true`, which means that the field is indexed. Allowed values are `true` or `false`.