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

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)文章

  • Java設(shè)計(jì)模式七大原則之迪米特法則詳解

    Java設(shè)計(jì)模式七大原則之迪米特法則詳解

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

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

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

    spring MVC搭建及配置詳解

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

    Java騷操作之CountDownLatch代碼詳解

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

    Spring中ApplicationContextAware的使用方法詳解

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

    java“與”符號(hào)寫法與用法

    在本篇文章里小編給大家整理的是關(guān)于java“與”符號(hào)寫法與用法,對(duì)此有需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • java對(duì)象拷貝常見面試題及應(yīng)答匯總

    java對(duì)象拷貝常見面試題及應(yīng)答匯總

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

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

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

    springBoot整合mybatisplus全過程

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

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

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

最新評(píng)論

永靖县| 洛南县| 平遥县| 中山市| 柳江县| 宜都市| 鹤壁市| 桃源县| 阿拉善右旗| 江川县| 临沂市| 金秀| 吉木乃县| 甘洛县| 清丰县| 喀喇沁旗| 塔城市| 如皋市| 宜宾市| 通山县| 玉溪市| 宿迁市| 巫溪县| 南岸区| 台中市| 从江县| 房山区| 喀什市| 澄城县| 天峻县| 灵川县| 汝城县| 阿拉善盟| 二连浩特市| 西安市| 临西县| 子洲县| 醴陵市| 昌宁县| 江北区| 苍南县|