数值字段类型
下表列出了 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 |
双精度值,乘以字段值后四舍五入为最接近的长整型。必需。 |