久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

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

        千鋒教育

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

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

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

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

        Fielddata 詳盡解讀

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

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

        一、基礎(chǔ)概念

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

        二、聚合操作

        聚合操作是 Elasticsearch 中 fielddata 的一個(gè)核心使用場(chǎng)景。最簡(jiǎn)單的聚合操作是計(jì)算最大值、最小值、平均值和唯一值,可以通過以下語(yǔ)句進(jìn)行實(shí)現(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 對(duì)文本進(jìn)行聚合操作。例如,以下語(yǔ)句計(jì)算商品品牌的銷售總量:

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

        三、性能優(yōu)化

        Fielddata 相對(duì)于一些常用的 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í)。因此,需要明確設(shè)置聚合、搜索、查詢、過濾和排序等操作的范圍和目標(biāo),盡量不對(duì)全部數(shù)據(jù)執(zhí)行操作。

        3、增加緩存大小

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

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

        4、合理使用 filter

        filter 比 query 更快,因?yàn)樗梢詼p少 fielddata 的工作。過濾多個(gè)聚合操作時(shí),盡量使用 filter 而不是 query。

        四、總結(jié)

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

        tags: fp32和fp16
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(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
        linux獲取MAC地址,linux獲取dns

        linux服務(wù)器DNS配置linux服務(wù)器dnsDNS服務(wù)器軟件的安裝 在Linux中都是用Bind來實(shí)現(xiàn)此服務(wù),即以一個(gè)名為“named進(jìn)程”作為域名服務(wù) 器進(jìn)程的主...詳情>>

        2023-11-23 14:28:50
        QString分割字符串詳解

        一、qstring截取一段字符串在QString中,可以使用mid方法來截取一段指定長(zhǎng)度的字符串。mid方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)是待截取的字符串的起始...詳情>>

        2023-11-23 14:16:27
        arduinomap函數(shù)詳解

        一、arduino函數(shù)簡(jiǎn)介Arduino是一款強(qiáng)大的開發(fā)板,它由一個(gè)處理器、電源、接口外設(shè)和一系列輸入輸出引腳組成。Arduino的主要優(yōu)勢(shì)在于它的易于使...詳情>>

        2023-11-23 14:09:15
        QLable點(diǎn)擊事件用法介紹

        一、QLable簡(jiǎn)介QLable是Qt中的一個(gè)控件,它是用來顯示文本和圖像的,具有輕量級(jí)、易于定制等特點(diǎn),是Qt開發(fā)中常用的控件之一。二、QLable的點(diǎn)擊...詳情>>

        2023-11-23 13:47:38
        深入了解Tomcat日志級(jí)別

        一、Tomcat日志級(jí)別調(diào)整默認(rèn)情況下,Tomcat的日志級(jí)別是INFO,可以通過修改Tomcat配置文件中的日志級(jí)別,調(diào)整Tomcat的日志打印級(jí)別。二、Tomcat...詳情>>

        2023-11-23 12:46:26
        新丰县| 莱阳市| 安福县| 普兰店市| 岳阳市| 全南县| 木里| 大姚县| 上思县| 武强县| 双柏县| 绩溪县| 桐柏县| 星子县| 吴江市| 扎赉特旗| 二连浩特市| 怀仁县| 旌德县| 达日县| 特克斯县| 棋牌| 观塘区| 宜君县| 聂拉木县| 罗田县| 碌曲县| 大悟县| 泸水县| 安多县| 瓦房店市| 山阴县| 阳城县| 温宿县| 绿春县| 托克逊县| 岳池县| 贵溪市| 忻城县| 平乐县| 巴东县|