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

Elasticsearch 映射 fielddata 工作原理解析

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

1.fielddata 是什么

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

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

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

2.fielddata 的工作原理

  • 按需加載:當?shù)谝淮涡枰獙δ硞€字段執(zhí)行聚合 / 排序等操作時,Elasticsearch 會從磁盤讀取該字段的所有值并構(gòu)建內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)。
  • 存儲在 JVM 堆內(nèi)存fielddata 會占用 JVM 堆內(nèi)存空間。
  • 字段級啟用:默認情況下,text 字段禁用 fielddatakeyword 字段使用 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.使用場景示例

示例 1:對 text 字段進行聚合

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

示例 2:對 text 字段進行排序

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

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

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

6.注意事項

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

7.最佳實踐

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

然后對 my_field.keyword 進行操作。

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

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

相關文章

  • Java設計模式七大原則之迪米特法則詳解

    Java設計模式七大原則之迪米特法則詳解

    迪米特法則要求一個對象應該對其他對象有最少的了解,所以迪米特法則又叫做最少知識原則。本文將為大家詳細介紹Java設計模式七大原則之一的迪米特法則,需要的可以參考一下
    2022-02-02
  • Java入門基礎之Java的基本語法與Java所支持的數(shù)據(jù)類型

    Java入門基礎之Java的基本語法與Java所支持的數(shù)據(jù)類型

    這篇文章主要介紹了Java入門基礎之Java的基本語法與Java所支持的數(shù)據(jù)類型,熟悉語法和數(shù)據(jù)類型通常是了解一種編程語言的開始,需要的朋友可以參考下
    2016-02-02
  • spring MVC搭建及配置詳解

    spring MVC搭建及配置詳解

    本篇文章主要介紹了spring MVC配置方法,要想靈活運用Spring MVC來應對大多數(shù)的Web開發(fā),就必須要掌握它的配置及原理,有興趣的可以了解一下。
    2017-01-01
  • Java騷操作之CountDownLatch代碼詳解

    Java騷操作之CountDownLatch代碼詳解

    這篇文章主要介紹了Java騷操作之CountDownLatch代碼詳解,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Spring中ApplicationContextAware的使用方法詳解

    Spring中ApplicationContextAware的使用方法詳解

    ApplicationContextAware?通過它Spring容器會自動把上下文環(huán)境對象調(diào)用ApplicationContextAware接口中的setApplicationContext方法,這篇文章主要介紹了Spring中ApplicationContextAware的作用,需要的朋友可以參考下
    2023-03-03
  • java“與”符號寫法與用法

    java“與”符號寫法與用法

    在本篇文章里小編給大家整理的是關于java“與”符號寫法與用法,對此有需要的朋友們可以學習下。
    2020-02-02
  • java對象拷貝常見面試題及應答匯總

    java對象拷貝常見面試題及應答匯總

    在本篇文章里小編給大家整理的是關于java對象拷貝常見面試題的相關內(nèi)容,需要的朋友們可以學習下。
    2020-02-02
  • 詳解Java中static關鍵字和內(nèi)部類的使用

    詳解Java中static關鍵字和內(nèi)部類的使用

    這篇文章主要為大家詳細介紹了Java中static關鍵字和內(nèi)部類的使用,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-08-08
  • springBoot整合mybatisplus全過程

    springBoot整合mybatisplus全過程

    MyBatisPlus簡介及開發(fā)步驟,介紹其簡化開發(fā)、高度可定制及強大的代碼生成器等特點,適合數(shù)據(jù)庫操作場景優(yōu)化
    2026-05-05
  • java項目中使用 Lombok遇到的問題小結(jié)

    java項目中使用 Lombok遇到的問題小結(jié)

    這篇文章主要介紹了java項目中使用 Lombok遇到的問題小結(jié),需要的朋友可以參考下
    2018-07-07

最新評論

承德县| 当涂县| 陈巴尔虎旗| 韶山市| 古浪县| 廊坊市| 清水河县| 柳河县| 巴彦县| 舞阳县| 青川县| 龙泉市| 前郭尔| 宣恩县| 北辰区| 和静县| 红原县| 通辽市| 连山| 曲水县| 鹤山市| 浑源县| 德阳市| 临城县| 平昌县| 延长县| 福州市| 蒲城县| 济源市| 雷波县| 峨山| 中西区| 将乐县| 汾西县| 正安县| 宜兰市| 宜川县| 新和县| 崇礼县| 武穴市| 嘉鱼县|