91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

      手機(jī)站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

      千鋒教育

      掃一掃進(jìn)入千鋒手機(jī)站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時隨地免費(fèi)學(xué)習(xí)課程

      當(dāng)前位置:首頁  >  技術(shù)干貨  > Fielddata 詳盡解讀

      Fielddata 詳盡解讀

      來源:千鋒教育
      發(fā)布人:xqq
      時間: 2023-11-23 12:03:14 1700712194

      Fielddata 是 Elasticsearch 中的一個術(shù)語,指的是一些字段上值的聚合操作。ES 默認(rèn)情況下,對于每個字段,都會存儲原始的值和倒排索引來支持搜索。然而,在某些場景下,我們也需要聚合數(shù)據(jù),計算最小、最大、平均值等指標(biāo),這就用到了 fielddata。下面將從幾個方面對 fielddata 進(jìn)行詳細(xì)解讀。

      一、基礎(chǔ)概念

      Fielddata 中有兩種類型的值:doc value 和 fielddata cache。其中,doc value 本質(zhì)是一種優(yōu)化索引的方式,可以加速排序和聚合操作。doc value 值是預(yù)先計算好的存儲在內(nèi)存中的值。相比之下,fielddata cache 存儲在磁盤上的原始值,需要在聚合操作時再進(jìn)行計算。fielddata cache 默認(rèn)情況下是禁用的,需要手動啟用。

      二、聚合操作

      聚合操作是 Elasticsearch 中 fielddata 的一個核心使用場景。最簡單的聚合操作是計算最大值、最小值、平均值和唯一值,可以通過以下語句進(jìn)行實現(xiàn):

      
      GET /my_index/_search
      {
          "aggs": {
              "max_amount": { "max": { "field": "amount" } },
              "min_amount": { "min": { "field": "amount" } },
              "avg_amount": { "avg": { "field": "amount" } },
              "unique_tags": { "cardinality": { "field": "tags" } }
          }
      }
      

      另外,我們還可以使用 fielddata 對文本進(jìn)行聚合操作。例如,以下語句計算商品品牌的銷售總量:

      
      GET /my_index/_search
      {
          "aggs": {
              "brand_sales": {
                  "terms": {
                      "field": "brand.keyword"
                  },
                  "aggs": {
                      "total_sales": {
                          "sum": {
                              "field": "sales"
                          }
                      }
                  }
              }
          }
      }
      

      三、性能優(yōu)化

      Fielddata 相對于一些常用的 Elasticsearch 操作(如搜索)是非常消耗資源的。因此需要一定的性能優(yōu)化。常見的優(yōu)化方式包括:

      1、啟用 doc value

      啟用 doc value 可以提升排序、聚合操作的性能,占用更少的內(nèi)存。

      
      PUT my_index/_mapping/my_type
      {
        "properties": {
          "my_field": {
            "type": "long",
            "doc_values": true
          }
        }
      }
      

      2、避免全量操作

      避免全量操作可以大大減少聚合操作的耗時。因此,需要明確設(shè)置聚合、搜索、查詢、過濾和排序等操作的范圍和目標(biāo),盡量不對全部數(shù)據(jù)執(zhí)行操作。

      3、增加緩存大小

      fielddata 的 cache 默認(rèn)是 30% JVM 堆空間。如果數(shù)據(jù)量較大,緩存可能會非常滿,導(dǎo)致性能問題??梢酝ㄟ^增加緩存大小解決這個問題。

      
      PUT /my_index/_settings
      {
          "index": {
              "fielddata": {
                  "cache": {
                      "size": "40%"
                  }
              }
          }
      }
      

      4、合理使用 filter

      filter 比 query 更快,因為它可以減少 fielddata 的工作。過濾多個聚合操作時,盡量使用 filter 而不是 query。

      四、總結(jié)

      本文介紹了 Elasticsearch 中的 fielddata,討論了其基礎(chǔ)概念、聚合操作和性能優(yōu)化。對于線上環(huán)境中的 fielddata 操作,需要根據(jù)具體的業(yè)務(wù)場景和數(shù)據(jù)量進(jìn)行合理的性能優(yōu)化,才能獲得更好的使用效果。

      tags: fp32和fp16
      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費(fèi)領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT