From b8b92844e4643cf225fa1a65ae8788094cd398b6 Mon Sep 17 00:00:00 2001 From: Benjamin Trent Date: Tue, 30 Apr 2024 08:51:40 -0400 Subject: [PATCH] Adding docs about scaled_float saturation with long values (#107966) (#108077) --- docs/reference/mapping/types/numeric.asciidoc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/reference/mapping/types/numeric.asciidoc b/docs/reference/mapping/types/numeric.asciidoc index a78611c4d8d38..c2642b01b59f2 100644 --- a/docs/reference/mapping/types/numeric.asciidoc +++ b/docs/reference/mapping/types/numeric.asciidoc @@ -227,6 +227,18 @@ numeric field can't be both a time series dimension and a time series metric. of `scaling_factor` improve accuracy but also increase space requirements. This parameter is required. +[[scaled-float-saturation]] +==== `scaled_float` saturation + +`scaled_float` is stored as a single `long` value, which is the product of multiplying the original value by the scaling factor. If the multiplication +results in a value that is outside the range of a `long`, the value is saturated +to the minimum or maximum value of a `long`. For example, if the scaling factor +is +100+ and the value is +92233720368547758.08+, the expected value is +9223372036854775808+. +However, the value that is stored is +9223372036854775807+, the maximum value for a `long`. + +This can lead to unexpected results with <> +when the scaling factor or provided `float` value are exceptionally large. + [[numeric-synthetic-source]] ==== Synthetic `_source`