亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、概述

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:帶有縮放因子的縮放類型浮點(diǎn)數(shù)。需配合縮放因子scaling_factor一起使用。

什么時(shí)候使用scaled_float類型呢?

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

例如:

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

scaled_float類型注意事項(xiàng)

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

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

二、實(shí)踐

接下來,我們通過一個(gè)簡(jiǎn)單的示例來演示scaled_float類型的字段的使用。

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

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

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

(2)、存儲(chǔ)第一個(gè)值

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

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

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

(3)、存儲(chǔ)第二個(gè)值

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

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

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

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

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的文檔,實(shí)際上ES是將查詢條件:13.3245 * 100(縮放因子) = 1332.45,然后四舍五入之后到最近的長(zhǎng)值得到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的文檔,實(shí)際上ES是將查詢條件:13.3267 * 100(縮放因子) = 1332.67,然后四舍五入之后到最近的長(zhǎng)值得到1333,這樣就能匹配到ID為2的文檔。

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

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

相關(guān)文章

  • 解決RedisTemplate存儲(chǔ)至緩存數(shù)據(jù)出現(xiàn)亂碼的情況

    解決RedisTemplate存儲(chǔ)至緩存數(shù)據(jù)出現(xiàn)亂碼的情況

    這篇文章主要介紹了解決RedisTemplate存儲(chǔ)至緩存數(shù)據(jù)出現(xiàn)亂碼的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java中float類型的范圍及其與十六進(jìn)制的轉(zhuǎn)換例子

    Java中float類型的范圍及其與十六進(jìn)制的轉(zhuǎn)換例子

    這篇文章主要介紹了Java中float類型的范圍及其與十六進(jìn)制的轉(zhuǎn)換例子,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • 詳解shiro緩存機(jī)制

    詳解shiro緩存機(jī)制

    Shiro提供了類似于Spring的Cache抽象,即Shiro本身不實(shí)現(xiàn)Cache,但是對(duì)Cache進(jìn)行了又抽象,方便更換不同的底層Cache實(shí)現(xiàn)。下面通過實(shí)例代碼給大家分享shiro緩存機(jī)制,感興趣的朋友一起看看吧
    2017-09-09
  • 怎么運(yùn)行用記事本寫的java程序

    怎么運(yùn)行用記事本寫的java程序

    以下小編就為大家介紹一下,怎么運(yùn)行用記事本寫的java程序。需要的朋友可以過來參考下
    2013-08-08
  • SpringMvc @Valid如何拋出攔截異常

    SpringMvc @Valid如何拋出攔截異常

    這篇文章主要介紹了SpringMvc @Valid如何拋出攔截異常,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java String.replace()方法

    Java String.replace()方法"無效"的原因及解決方式

    這篇文章主要介紹了Java String.replace()方法"無效"的原因及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 在mybatis中去除多余的前綴或者后綴操作

    在mybatis中去除多余的前綴或者后綴操作

    這篇文章主要介紹了在mybatis中去除多余的前綴或者后綴操作。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • JAVA解決在@autowired,@Resource注入為null的情況

    JAVA解決在@autowired,@Resource注入為null的情況

    這篇文章主要介紹了JAVA解決在@autowired,@Resource注入為null的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java基礎(chǔ)的詳細(xì)了解第四天

    java基礎(chǔ)的詳細(xì)了解第四天

    這篇文章對(duì)Java編程語言的基礎(chǔ)知識(shí)作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來幫助
    2021-08-08
  • maven安裝與環(huán)境配置圖文教程

    maven安裝與環(huán)境配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了maven安裝與環(huán)境配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10

最新評(píng)論