最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Elasticsearch常見字段映射類型之scaled_float解讀

 更新時間:2022年11月18日 15:46:23   作者:每天都要進步一點點  
這篇文章主要介紹了Elasticsearch常見字段映射類型之scaled_float解讀。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、概述

ES中支持的常見的數(shù)字類型有

  • long 
  • integer
  • short
  • byte
  • double
  • float
  • half_float
  • scaled_float

如下表:

官方文檔地址:Numeric field types | Elasticsearch Guide [8.2] | Elastic

今天我們主要總結(jié)一下scaled_float這種數(shù)字類型。

scaled_float:帶有縮放因子的縮放類型浮點數(shù)。需配合縮放因子scaling_factor一起使用。

什么時候使用scaled_float類型呢?

有時候,我們需要存儲浮點類型的數(shù)據(jù),比如價格等,單位為元。這時候其實推薦價格使用scaled_float類型,然后我們將比例因子(scaling_factor)設(shè)置為100,這樣我們的價格在ES中就會以“分”進行存儲。

例如:

假設(shè)縮放因子scale_factor為100,這樣scaled_float字段將在ES內(nèi)部存儲10.25(元)為1025(分)。存儲10.2588(元)為1026(分)。

scaled_float類型注意事項

必須指定縮放因子scaling_factor。ES索引時,原始值會乘以該縮放因子并四舍五入得到新值,ES內(nèi)部儲存的是這個新值,但返回結(jié)果仍是原始值。使用比例因子的好處是整型比浮點型更易壓縮,節(jié)省磁盤空間。

注意: scaling_factor屬性是只針對scaled_float這個數(shù)據(jù)類型才有,不要在其他類型上使用此屬性。

二、實踐

接下來,我們通過一個簡單的示例來演示scaled_float類型的字段的使用。

(1)、創(chuàng)建包含類型為scaled_float的字段

totalAmount(總價格)的索引order,并指定scaling_factor(縮放因子)為100

PUT order
{
  "mappings": {
    "properties": {
      "totalAmount": {
        "type": "scaled_float",
        "scaling_factor": 100
      }
    }
  }
}

(2)、存儲第一個值

PUT order/_doc/1
{
  "totalAmount": 13.3225
}

實際上,ES內(nèi)部存儲的是:

13.3225 * 100(縮放因子) = 1332.25,然后四舍五入得到1332,所以內(nèi)部真正存儲的是1332。

(3)、存儲第二個值

PUT order/_doc/2
{
  "totalAmount": 13.3277
}

實際上,ES內(nèi)部存儲的是:

13.3277 * 100(縮放因子) = 1332.77,然后四舍五入得到1333,所以內(nèi)部真正存儲的是1333。

(4)、基于totalAmount條件進行查詢匹配

GET order/_search
{
  "query": {
    "match": {
      "totalAmount": 13.3245
    }
  }
}

查詢結(jié)果:

"hits" : [
      {
        "_index" : "order",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "totalAmount" : 13.3225
        }
      }
    ]

通過查詢結(jié)果可以看到,通過13.3245查詢出了ID為1的文檔,實際上ES是將查詢條件:13.3245 * 100(縮放因子) = 1332.45,然后四舍五入之后到最近的長值得到1332,這樣就能匹配到ID為1的文檔。

需要注意的是,雖然ES在內(nèi)部做了縮放處理,但是查詢返回值還是原始值(13.3225)。

GET order/_search
{
  "query": {
    "match": {
      "totalAmount": 13.3267
    }
  }
}

查詢結(jié)果:

"hits" : [
      {
        "_index" : "order",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "totalAmount" : 13.3277
        }
      }
    ]

通過查詢結(jié)果可以看到,通過13.3267查詢出了ID為2的文檔,實際上ES是將查詢條件:13.3267 * 100(縮放因子) = 1332.67,然后四舍五入之后到最近的長值得到1333,這樣就能匹配到ID為2的文檔。

需要注意的是,雖然ES在內(nèi)部做了縮放處理,但是查詢返回值還是原始值(13.3277)。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot實戰(zhàn)教程之新手入門篇

    SpringBoot實戰(zhàn)教程之新手入門篇

    Spring Boot使我們更容易去創(chuàng)建基于Spring的獨立和產(chǎn)品級的可以"即時運行"的應(yīng)用和服務(wù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot實戰(zhàn)教程之入門篇的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • mybatis-plus自動填充插入更新時間有8小時時差

    mybatis-plus自動填充插入更新時間有8小時時差

    本文主要介紹了mybatis-plus自動填充插入更新時間有8小時時差,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 如何安裝jdk及安裝MyEclipse的圖文教程

    如何安裝jdk及安裝MyEclipse的圖文教程

    這篇文章主要介紹了如何安裝jdk及安裝MyEclipse的圖文教程,需要的朋友可以參考下
    2018-03-03
  • 由淺到深帶你詳談Java實現(xiàn)數(shù)組擴容的三種方式

    由淺到深帶你詳談Java實現(xiàn)數(shù)組擴容的三種方式

    這篇文章主要詳細介紹了Java實現(xiàn)數(shù)組擴容的三種方式,新建一個數(shù)組,把原來數(shù)組的內(nèi)容搬到新數(shù)組中,使用system.arraycopy(),使用java.util.Arrays.copyOf()這三種方式,具有一定的參考價值,需要的朋友可以借鑒一下
    2023-06-06
  • Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之貪心算法

    Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之貪心算法

    我們可能在好多地方都會聽到貪心算法這一概念,并且它的算法思想也比較簡單就是說算法只保證局部最優(yōu),進而達到全局最優(yōu)。但我們實際編程的過程中用的并不是很多,究其原因可能是貪心算法使用的條件比較苛刻,所要解決的問題必須滿足貪心選擇性質(zhì)
    2022-02-02
  • Java的幾種文件拷貝方式示例詳解

    Java的幾種文件拷貝方式示例詳解

    在Java編程中文件操作是常見且重要的任務(wù)之一,其中文件拷貝是一種基本操作,這篇文章主要給大家介紹了關(guān)于Java幾種文件拷貝方式的相關(guān)資料,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2024-08-08
  • Java IO流之字符緩沖流實例詳解

    Java IO流之字符緩沖流實例詳解

    這篇文章主要介紹了Java IO流之字符緩沖流,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java網(wǎng)絡(luò)編程中的TCP/UDP詳解

    Java網(wǎng)絡(luò)編程中的TCP/UDP詳解

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程中的TCP/UDP詳解,網(wǎng)絡(luò)編程是指編寫運行在多個設(shè)備的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來,java.net 包中 J2SE 的 API 包含有類和接口,它們提供低層次的通信細節(jié),需要的朋友可以參考下
    2023-12-12
  • java?設(shè)計模式從風(fēng)控鏈理解責(zé)任鏈模式

    java?設(shè)計模式從風(fēng)控鏈理解責(zé)任鏈模式

    這篇文章主要為大家介紹了java?設(shè)計模式從風(fēng)控鏈理解責(zé)任鏈模式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • JavaFX實現(xiàn)簡易時鐘效果(一)

    JavaFX實現(xiàn)簡易時鐘效果(一)

    這篇文章主要為大家詳細介紹了JavaFX實現(xiàn)簡易時鐘效果的第一篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論

德兴市| 谢通门县| 贵阳市| 深泽县| 尼玛县| 土默特右旗| 衡东县| 衡东县| 江孜县| 岚皋县| 库尔勒市| 郴州市| 巴马| 远安县| 德惠市| 仁布县| 汉川市| 乌恰县| 延吉市| 砚山县| 宜昌市| 定陶县| 门源| 原平市| 莱州市| 宜良县| 三原县| 鹤岗市| 渝中区| 运城市| 元江| 镇康县| 布拖县| 青海省| 加查县| 竹山县| 绥中县| 青海省| 东光县| 赤壁市| 湘乡市|