---
title: "数值字段类型（Numeric）"
date: 0001-01-01
summary: "Numeric 字段类型 #  下表列出了 Easysearch 支持的所有数字字段类型。
   字段数据类型 描述     byte 有符号的 8 位整数。最小值为 -128，最大值为 127。   double 双精度 64 位 IEEE 754 浮点数。最小值为 2^−1074，最大值为 (2 − 2^−52) · 2^1023。有效位数为 53，有效数字位为 15.95。   float 单精度 32 位 IEEE 754 浮点数。最小值为 2^−149，最大值为 (2 − 2^−23) · 2^127。有效位数为 24，有效数字位为 7.22。   half_float 半精度 16 位 IEEE 754 浮点数。最小值为 2^−24，最大值为 65504。有效位数为 11，有效数字位为 3.31。   integer 有符号的 32 位整数。最小值为 -2^31，最大值为 2^31 - 1。   long 有符号的 64 位整数。最小值为 -2^63，最大值为 2^63 - 1。   short 有符号的 16 位整数。最小值为 -2^15，最大值为 2^15 - 1。   scaled_float 一个浮点值，它会被乘以双精度缩放因子并存储为长整型值。     Integer、long、float 和 double 字段类型都有对应的 范围字段类型。"
---


# Numeric 字段类型

下表列出了 Easysearch 支持的所有数字字段类型。

| 字段数据类型  | 描述                                                                                                               |
| ------------- | ------------------------------------------------------------------------------------------------------------------ |
| byte          | 有符号的 8 位整数。最小值为 -128，最大值为 127。                                                                   |
| double        | 双精度 64 位 IEEE 754 浮点数。最小值为 2^−1074，最大值为 (2 − 2^−52) · 2^1023。有效位数为 53，有效数字位为 15.95。 |
| float         | 单精度 32 位 IEEE 754 浮点数。最小值为 2^−149，最大值为 (2 − 2^−23) · 2^127。有效位数为 24，有效数字位为 7.22。    |
| half_float    | 半精度 16 位 IEEE 754 浮点数。最小值为 2^−24，最大值为 65504。有效位数为 11，有效数字位为 3.31。                   |
| integer       | 有符号的 32 位整数。最小值为 -2^31，最大值为 2^31 - 1。                                                            |
| long          | 有符号的 64 位整数。最小值为 -2^63，最大值为 2^63 - 1。                                                            |
| short         | 有符号的 16 位整数。最小值为 -2^15，最大值为 2^15 - 1。                                                            |
| scaled_float  | 一个浮点值，它会被乘以双精度缩放因子并存储为长整型值。                                                             |

> Integer、long、float 和 double 字段类型都有对应的[范围字段类型](./range-field-type.md)。

> 如果你的数字字段用来做标识符（如 ID），你可以将此字段映射为 [keyword](./string-field-type/keyword.md) 以优化 term 查询的速度。如果你需要对此字段使用范围查询，你可以将此字段同时映射为数字字段类型和关键字字段类型。

## 示例

创建一个映射，其中 integer_value 是一个整数字段：

```json
PUT testindex
{
  "mappings": {
    "properties": {
      "integer_value": {
        "type": "integer"
      }
    }
  }
}

写入一个`integer_value`的文档
PUT testindex/_doc/1
{
  "integer_value": 123
}
```

## Scaled float 字段类型

scaled float 字段类型是一个浮点值，它会被乘以缩放因子并存储为长整型值。它接受所有数字字段类型的可选参数，还需要一个额外的 scaling_factor 参数。在创建 scaled float 需要添加缩放因子 scale factor。

> scaled float 对于节省磁盘空间很有用。较大的 scaling_factor 值会带来更好的精度，但会占用更多空间。

## Scaled float 示例

创建一个映射，其中 `scaled` 是一个 scaled_float 字段：

```json
PUT testindex
{
  "mappings": {
    "properties": {
      "scaled": {
        "type": "scaled_float",
        "scaling_factor": 10
      }
    }
  }
}

写入一个包含 `scaled_float` 字段的文档
PUT testindex/_doc/1
{
  "scaled": 2.3
}
```

`scaled` 值将被存储为 23。

## 参数

下表列出了数字字段类型接受的参数。所有参数都是可选的。

| 参数             | 描述                                                                                                                |
| ---------------- | ------------------------------------------------------------------------------------------------------------------- |
| boost            | 浮点值，指定此字段的权重。值大于 1.0 会增加此字段的相关性。值在 0.0 和 1.0 之间会降低此字段的相关性。默认值为 1.0。 |
| coerce           | 布尔值，指定是否允许强制类型转换。如果为 true，则字符串会被强制转换为数字，并且小数会被截断为整数。默认为 true。    |
| doc_values       | 布尔值，指定是否应该将字段添加到列存储中。默认为 true。                                                             |
| ignore_malformed | 布尔值，指定是否应该忽略格式错误的数字。默认为 false。                                                              |
| index            | 布尔值，指定字段是否应该被索引以用于搜索。默认为 true。                                                             |
| meta             | 接受此字段的元数据。                                                                                                |
| null_value       | 用于替代 null 的值。必须与字段类型相同。如果未指定此参数，当字段值为 null 时，该字段将被视为缺失。默认为 null。     |
| store            | 布尔值，指定字段值是否应该被存储并且可以与 \_source 字段分开检索。默认为 false。                                    |

scaled float 有一个额外的必需参数：`scaling_factor`。

| 参数           | 描述                                                                 |
| -------------- | -------------------------------------------------------------------- |
| scaling_factor | 一个双精度值，它会被乘以字段值并四舍五入为最接近的长整型。必需参数。 |

