如何解决在 Elasticsearch 中使用 scaled_float 可以表示什么范围的数字?
我想弄清楚我可以使用 scaled_float 表示哪些数字。
在文档中 https://www.elastic.co/guide/en/elasticsearch/reference/master/number.html 我第一次阅读:
scaled_float
A floating point number that is backed by a long,scaled by a fixed double scaling factor.
所以似乎内存中的大小是固定的:一个 long,在内存中需要 64 位(缩放因子是固定的,每个值都相同,因此它不会出现在内存中数字)
但后来在我读到的同一页上,关于 scaled_float:
High values of scaling_factor improve accuracy but also increase space requirements. This parameter is required.
所以看起来,实际上 scaled_float 的大小不是固定的?如果我愿意,我可以在同一领域中表示非常非常大的数字和非常非常小的数字吗?或者是否有限制?如果有,这些限制是什么?
解决方法
“真实”大小(在内存或磁盘中)不是固定的,取决于 scaling_factor 的值。 scale_factor 它是 scaled_float 的附加参数。
scaling_factor .- 值将在索引时乘以该因子并四舍五入为 最接近的 long 值。例如,一个 scaled_float 与 scale_factor 为 10 会将 2.34 内部存储为 23 和所有 搜索时操作(查询、聚合、排序)将表现为 如果文档的值为 2.3。 scale_factor 的高值 提高精度的同时也增加了空间要求。这个参数 是必需的。
scaled_float.- 一个由 long 支持的浮点数,由一个固定的缩放 双倍比例因子
缩放因子一旦定义就固定了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。