数值字段类型

下表列出了 UDB-SX 支持的所有数值字段类型。

字段数据类型 描述
byte 有符号 8 位整数。最小值为 -128。最大值为 127。
double 双精度 64 位 IEEE 754 浮点值。最小数量级为 2-1074。最大数量级为 (2 - 2-52) · 21023。有效位数为 53。有效数字位数为 15.95。
float 单精度 32 位 IEEE 754 浮点值。最小数量级为 2-149。最大数量级为 (2 - 2-23) · 2127。有效位数为 24。有效数字位数为 7.22。
half_float 半精度 16 位 IEEE 754 浮点值。最小数量级为 2-24。最大数量级为 65504。有效位数为 11。有效数字位数为 3.31。
integer 有符号 32 位整数。最小值为 -231。最大值为 231 - 1。
long 有符号 64 位整数。最小值为 -263。最大值为 263 - 1。
unsigned_long 无符号 64 位整数。最小值为 0。最大值为 264 - 1。
short 有符号 16 位整数。最小值为 -215。最大值为 215 - 1。
scaled_float 浮点值,乘以双精度缩放因子后以长整型存储。

整数、长整型、浮点数和双精度数字段类型都有对应的范围字段类型

如果您的数值字段包含标识符(如 ID),可以将该字段映射为关键字类型,以优化词项级别查询速度。如果需要对字段进行范围查询,除了关键字字段类型外,还可以将其映射为数值字段类型。

示例

创建一个映射,其中 integer_value 为整数字段:

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

索引一个包含整数值的文档:

PUT testindex/_doc/1 
{
  "integer_value" : 123
}

Scaled float 字段类型

Scaled float 字段类型是一种浮点值,会乘以缩放因子并以长整型存储。它接受数字字段类型的所有可选参数,外加一个额外的 scaling_factor 参数。创建 scaled float 时必须指定缩放因子。

Scaled float 有助于节省磁盘空间。较大的 scaling_factor 值会提高精度,但也会增加空间开销。

Scaled float 示例

创建一个映射,其中 scaled 为 scaled_float 字段:

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
doc_values 布尔值,指定是否应将字段存储在磁盘上,以便用于聚合、排序或脚本操作。默认值为 true
ignore_malformed 布尔值,指定是否忽略格式错误的值而不抛出异常。默认值为 false
index 布尔值,指定字段是否应可搜索。默认值为 true
meta 接受此字段的元数据。
null_value 用于替代 null 的值。必须与字段类型相同。如果未指定此参数,当字段值为 null 时,该字段将被视为缺失。默认值为 null
store 布尔值,指定字段值是否应存储,并可从 _source 字段单独检索。默认值为 false

Scaled float 有一个额外的必需参数:scaling_factor

参数 描述
scaling_factor 双精度值,乘以字段值后四舍五入为最接近的长整型。必需。