Elasticsearch常见字段映射类型之scaled_float解读

yizhihongxing

下面是详细讲解"Elasticsearch常见字段映射类型之scaled_float解读"的完整攻略。

什么是scaled_float

scaled_float是Elasticsearch中常见字段映射类型之一,该类型用于存储浮点数,可以对其进行缩放来获得更好的精度。

在scaled_float中,采用两个参数来定义缩放比例:

  • Scaling factor:缩放比例因子,表示将原始值缩放的倍数。
  • Scaling divisor:缩放除数,表示将缩放后的值除以该数得到最终值。

如何使用scaled_float

在Elasticsearch中使用scaled_float非常简单,只需要在创建或修改mapping时指定该类型即可:

PUT /my_index
{
  "mappings": {
    "properties": {
      "my_field": {
        "type": "scaled_float",
        "scaling_factor": 100,
        "scaling_divisor": 1000
      }
    }
  }
}

在上述代码中,我们创建了一个名为"my_field"的scaled_float类型字段,并指定了缩放比例为100/1000。

通过这种方式,当我们向该字段中存储一个值为200.0的文档时,实际上存储的值为2.0,这样可以获得更好的精度。

两个示例说明

下面分别给出两个使用scaled_float的示例。

示例一:餐厅评分

假设我们有一个餐厅评分系统,其中评分范围是1到10,且支持小数点后一位的精度。我们使用scaled_float类型来存储评分值,缩放比例为10/1:

PUT /restaurant_ratings
{
  "mappings": {
    "properties": {
      "rating": {
        "type": "scaled_float",
        "scaling_factor": 10,
        "scaling_divisor": 1
      }
    }
  }
}

在上述代码中,我们创建了一个名为"rating"的scaled_float类型字段,并指定了缩放比例为10/1。

当我们向该字段中存储一个评分值为8.5的文档时,实际存储的值为85。这样我们就可以在保证较高精度的情况下,节省存储空间。

示例二:运营监控

假设我们有一个运营监控系统,其中需要记录每个节点最近一次的处理时间和任务数。我们使用scaled_float类型来存储任务数,缩放比例为1000/1:

PUT /node_stats
{
  "mappings": {
    "properties": {
      "tasks": {
        "type": "scaled_float",
        "scaling_factor": 1000,
        "scaling_divisor": 1
      },
      "last_processed": {
        "type": "date"
      }
    }
  }
}

在上述代码中,我们创建了一个名为"tasks"的scaled_float类型字段,并指定了缩放比例为1000/1。

当我们向该字段中存储一个任务数为1500的文档时,实际存储的值为1.5。这样我们就可以在保证较高精度的情况下,统一存储任务数的数据格式。

总结

通过本文的介绍,我们了解了什么是scaled_float以及如何使用它。在实际应用中,我们可以根据具体场景灵活使用该类型,以获得更好的存储效率和查询效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Elasticsearch常见字段映射类型之scaled_float解读 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 苹果iOS9键盘小写怎么改成默认大写?

    苹果iOS 9的键盘默认情况下是小写字母,但您可以通过以下步骤将其改为默认大写字母: 打开“设置”应用程序。 滚动并找到“通用”选项,然后点击进入。 在“通用”设置页面中,向下滚动并找到“键盘”选项,然后点击进入。 在键盘设置页面中,您将看到一个名为“自动大写”的选项。请确保该选项处于关闭状态,即灰色。 现在,您的键盘将默认为大写字母。 示例说明1:假设您想…

    other 2023年8月19日
    00
  • CSS3用@font-face实现自定义英文字体

    下面是关于“CSS3用@font-face实现自定义英文字体”的完整攻略: 什么是@font-face @font-face是CSS3的一个模块,它使得网页设计师可以定义自己的字体,而不用考虑用户是否已经安装了这些字体。该规范定义了一个新的CSS规则,允许开发者定义自己的字体资源,然后通过CSS来控制这些字体资源。 使用步骤 1.准备字体文件 首先,你需要有…

    other 2023年6月25日
    00
  • 三星note4开发者选项在哪?三星 note4打开开发者选项方法图解

    三星Note4的开发者选项可以通过以下步骤进行开启: 进入手机的“设置”菜单,找到“关于设备”选项,点击进入。 在“关于设备”页面中找到“软件信息”选项,点击进入。 在“软件信息”页面中找到“版本号”选项,连续点击7次。 点击完成后,会有提示“开发者选项已开启”。 返回“设置”菜单,找到“开发者选项”,点击进入即可。 上述是文字说明,以下是示例说明: 示例1…

    other 2023年6月26日
    00
  • 在命令行(dos)下收发邮件的方法

    在命令行下收发邮件是非常方便的,下面是详细的攻略: 安装邮件客户端 首先,你需要安装邮件客户端,Unix/Linux系统下经典的邮件客户端是mailx和mutt,Windows系统下可以使用Blat或bmail等客户端,你需要去对应的官方网站下载并安装。 配置SMTP服务器 然后,你需要配置SMTP服务器,根据你的邮件服务商提供的信息设置SMTP服务器和端口…

    other 2023年6月26日
    00
  • git彻底删除或变更子模块

    Git彻底删除或变更子模块 在使用 Git 进行项目管理时,我们可能会使用 Git 的子模块功能来管理项目中的子项目。但是,随着项目的变化,我们可能需要删除或者变更某些子模块。本文将介绍如何彻底删除或变更 Git 子模块。 删除子模块 删除一个 Git 子模块需要执行以下两个步骤: 在父项目中删除子模块的配置 删除子模块的 Git 存储库 删除子模块配置 删…

    其他 2023年3月29日
    00
  • python判断链表是否有环的实例代码

    题目描述:给定一个链表,判断链表是否有环。 思路分析 这个问题可以使用快慢指针解决。两个指针同时从头开始,一个每次走一步,一个每次走两步。如果链表上有环,那么这两个指针最终一定会相遇。如果指针走到 None 了,那么就说明不存在环。 代码实现 以下是Python实现的代码: class ListNode(object): def __init__(self,…

    other 2023年6月27日
    00
  • GO语言运行环境下载、安装、配置图文教程

    GO语言运行环境下载、安装、配置图文教程 下载GO语言安装包 首先访问官方网站https://golang.org/dl/,找到对应的GO语言安装包并下载,根据自己的操作系统选择相应的版本。 安装GO语言 Windows 下载GO语言安装包go*.msi,双击运行,然后按照指导完成GO语言的安装,最后单击“Finish”按钮。 macOS 下载GO语言安装包…

    other 2023年6月27日
    00
  • 关于C# 类的封装详情

    关于C# 类的封装详情 在 C# 中,封装是面向对象编程中的重要概念之一。封装允许你隐藏具体的实现,只对外部公开一些特定的方法或属性,从而更好地保护数据安全性并增强代码的可读性和可维护性。下面我们一起来详细讲解一下 C# 类的封装策略及实现细节。 一、封装的基本概念 封装分为两个方面的意义:一是将对一类对象的处理过程限制在该类对象的内部,而对外部不公开,这称…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部