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

Elasticsearch 映射 fielddata 工作原理解析

 更新時(shí)間:2025年06月11日 10:06:24   作者:G皮T  
在 Elasticsearch 中,fielddata 是一種在內(nèi)存中構(gòu)建的索引,用于加速某些類型的查詢,特別是聚合和排序操作,下面通過本文給大家介紹Elasticsearch 映射 fielddata的相關(guān)知識(shí),感興趣的朋友一起看看吧

1.fielddata 是什么

fielddata 是 Elasticsearch 中一種數(shù)據(jù)結(jié)構(gòu),用于在內(nèi)存中緩存字段數(shù)據(jù),主要服務(wù)于以下場(chǎng)景:

  • 聚合操作(Aggregations)
  • 排序(Sorting)
  • 腳本計(jì)算(Scripting)
  • 某些類型的查詢(如 field 字段上的 term 查詢)

當(dāng)需要對(duì) text 字段或其他非 doc_values 支持的字段執(zhí)行上述操作時(shí),Elasticsearch 需要將這些字段的值加載到內(nèi)存中,這就是 fielddata 的作用。

2.fielddata 的工作原理

  • 按需加載:當(dāng)?shù)谝淮涡枰獙?duì)某個(gè)字段執(zhí)行聚合 / 排序等操作時(shí),Elasticsearch 會(huì)從磁盤讀取該字段的所有值并構(gòu)建內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)。
  • 存儲(chǔ)在 JVM 堆內(nèi)存fielddata 會(huì)占用 JVM 堆內(nèi)存空間。
  • 字段級(jí)啟用:默認(rèn)情況下,text 字段禁用 fielddata,keyword 字段使用 doc_values 而非 fielddata

3.主要用法

3.1 啟用 fielddata(通常在 text 字段上)

PUT my_index/_mapping
{
  "properties": {
    "my_text_field": { 
      "type":     "text",
      "fielddata": true
    }
  }
}

3.2 監(jiān)控 fielddata 使用情況

GET _nodes/stats/indices/fielddata?fields=*

3.3 清除 fielddata 緩存

POST my_index/_cache/clear?fielddata=true

4.使用場(chǎng)景示例

示例 1:對(duì) text 字段進(jìn)行聚合

GET my_index/_search
{
  "size": 0,
  "aggs": {
    "my_terms": {
      "terms": {
        "field": "my_text_field"  // 需要該字段啟用 fielddata
      }
    }
  }
}

示例 2:對(duì) text 字段進(jìn)行排序

GET my_index/_search
{
  "sort": [
    {
      "my_text_field": {
        "order": "asc"
      }
    }
  ]
}

5.fielddata 與 doc_values 的區(qū)別

特性fielddatadoc_values
構(gòu)建時(shí)機(jī)查詢時(shí)按需構(gòu)建索引時(shí)預(yù)先構(gòu)建
存儲(chǔ)位置JVM 堆內(nèi)存磁盤(操作系統(tǒng)緩存)
內(nèi)存占用
適用字段類型主要為 text 字段主要為 keyword / numeric / date 等字段
默認(rèn)啟用text 字段默認(rèn)禁用支持的字段默認(rèn)啟用

6.注意事項(xiàng)

  • 內(nèi)存消耗fielddata 會(huì)顯著增加內(nèi)存使用,特別是高基數(shù)(大量唯一值)字段。
  • 性能影響:首次加載 fielddata 可能導(dǎo)致查詢延遲。
  • 替代方案:對(duì)于 keyword / numeric / date 等字段,優(yōu)先使用 doc_values
  • 熔斷機(jī)制:Elasticsearch 有 fielddata 熔斷器防止內(nèi)存耗盡。

7.最佳實(shí)踐

  • 盡量避免在 text 字段上啟用 fielddata
  • 如需對(duì)文本進(jìn)行聚合/排序,考慮使用多字段(multi-field)映射:
"my_field": {
  "type": "text",
  "fields": {
    "keyword": {
      "type": "keyword"
    }
  }
}

然后對(duì) my_field.keyword 進(jìn)行操作。

監(jiān)控 fielddata 內(nèi)存使用,設(shè)置合理的熔斷閾值。

到此這篇關(guān)于Elasticsearch 映射 fielddata 工作原理解析的文章就介紹到這了,更多相關(guān)Elasticsearch 映射 fielddata 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何加密配置文件里的敏感數(shù)據(jù)

    如何加密配置文件里的敏感數(shù)據(jù)

    這篇文章主要介紹了加密配置文件里的敏感數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 詳解如何使用Spring的@FeignClient注解實(shí)現(xiàn)通信功能

    詳解如何使用Spring的@FeignClient注解實(shí)現(xiàn)通信功能

    SpringBoot是一個(gè)非常流行的Java框架,它提供了一系列工具來使這種交互無縫且高效,在這些工具中,@FeignClient注解因其易用性和強(qiáng)大的功能而脫穎而出, 在這篇文章中,我們將探討如何使用Spring的@FeignClient注解進(jìn)行客戶端-服務(wù)器通信,需要的朋友可以參考下
    2023-11-11
  • Java調(diào)取創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)現(xiàn)代碼

    Java調(diào)取創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java調(diào)取創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2018-04-04
  • 關(guān)于Mybatis插入對(duì)象時(shí)空值的處理

    關(guān)于Mybatis插入對(duì)象時(shí)空值的處理

    這篇文章主要介紹了關(guān)于Mybatis插入對(duì)象時(shí)空值的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java ThreadLocal的使用詳解

    Java ThreadLocal的使用詳解

    ThreadLocal是線程私有的局部變量存儲(chǔ)容器,可以理解成每個(gè)線程都有自己專屬的存儲(chǔ)容器,用來存儲(chǔ)線程私有變量。ThreadLocal 在日常開發(fā)框架中應(yīng)用廣泛,但用不好也會(huì)出現(xiàn)各種問題,本文就此講解一下。
    2021-05-05
  • Java實(shí)現(xiàn)的生成二維碼和解析二維碼URL操作示例

    Java實(shí)現(xiàn)的生成二維碼和解析二維碼URL操作示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的生成二維碼和解析二維碼URL操作,結(jié)合實(shí)例形式分析了Java創(chuàng)建與解析二維碼,以及文件讀寫等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • java中switch選擇語句代碼詳解

    java中switch選擇語句代碼詳解

    這篇文章主要介紹了java中switch選擇語句代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 新手Hadoop安裝 環(huán)境搭建

    新手Hadoop安裝 環(huán)境搭建

    這篇文章主要介紹了Hadoop的安裝與環(huán)境搭建教程圖解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下,希望能給您帶來幫助
    2021-06-06
  • Java版超大整數(shù)階乘算法代碼詳解-10,0000級(jí)

    Java版超大整數(shù)階乘算法代碼詳解-10,0000級(jí)

    這篇文章主要介紹了Java版超大整數(shù)階乘算法代碼詳解-10,0000級(jí),具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Spring Boot 整合 Apache Flink 的詳細(xì)過程

    Spring Boot 整合 Apache Flink 的詳細(xì)過程

    Apache Flink 是一個(gè)高性能的分布式流處理框架,而Spring Boot提供了快速構(gòu)建企業(yè)級(jí)應(yīng)用的能力,下面給大家介紹Spring Boot 整合 Apache Flink 教程,感興趣的朋友一起看看吧
    2025-06-06

最新評(píng)論