在 Elasticsearch 中刪除文檔中的某個字段

作者:來自 Elastic?Kofi Bartlett

探索在 Elasticsearch 中刪除文檔字段的方法。

更多有關 Elasticsearch 文檔的操作,請詳細閱讀文章 “開始使用 Elasticsearch (1)”。

想獲得 Elastic 認證?查看下一期 Elasticsearch Engineer 培訓的時間!

Elasticsearch 擁有大量新功能,幫助你為你的使用場景構建最佳搜索解決方案。查看我們的示例 notebooks 了解更多內容,開始免費的云端試用,或現在就在本地機器上體驗 Elastic。


在 Elasticsearch 中,從文檔中刪除字段是一個常見需求。當你想從索引中移除不必要或過時的信息時,這會很有用。本文將討論在 Elasticsearch 中刪除文檔字段的不同方法,并附帶示例和逐步說明。

方法一:使用 Update API

Update API 允許你通過提供腳本來更新文檔的內容。你可以使用該 API 將字段設置為 null,或者更好地,直接從文檔中刪除該字段。以下是執行此操作的分步指南:

  1. 確定你要更新的文檔的索引、文檔類型(如果使用的是 Elasticsearch 6.x 或更早版本)和文檔 ID。

  2. 使用 Update API,并提供一個腳本,該腳本將字段設置為 null,或直接從文檔中移除該字段。以下示例演示了如何從索引為 my_index,ID 為 1 的文檔中刪除名為 field_to_delete 的字段:

    POST /my_index/_update/1
    {"script": {"source": "ctx._source.remove('field_to_delete')","lang": "painless"}
    }
    
  3. 執行請求。如果成功,Elasticsearch 會返回一個響應,表示文檔已被更新。

注意:此方法只會從指定文檔中移除字段。該字段仍然會存在于映射和索引中的其他文檔中。

方法二:使用修改后的源數據進行重新索引

如果你想從索引中的所有文檔中刪除一個字段,可以使用 Reindex API 創建一個帶有修改后源數據的新索引。操作如下:

  1. 創建一個與原始索引具有相同設置和映射的新索引。你可以使用 Get Index API 獲取原始索引的設置和映射。

  2. 使用 Reindex API 將文檔從原始索引復制到新索引,同時從源中移除該字段。以下示例演示了如何從 “my_index” 索引中的所有文檔中刪除 “field_to_delete” 字段:

    POST /_reindex
    {"source": {"index": "my_index"},"dest": {"index": "new_index"},"script": {"source": "ctx._source.remove('field_to_delete')"}
    }
  3. 驗證新索引中是否包含已刪除該字段的正確文檔

  4. 如果一切正常,你可以刪除原始索引,并在需要時為新索引添加一個別名,使其名稱與原始索引相同。

方法三:更新映射并重新索引

如果你想從映射和索引中的所有文檔中刪除一個字段,可以更新映射并重新索引文檔。操作如下:

  1. 創建一個與原始索引具有相同設置的新索引。

  2. 使用 Get Mapping API 獲取原始索引的映射。

  3. 修改映射,移除你想刪除的字段。

  4. 使用 Put Mapping API 將修改后的映射應用到新索引。

  5. 使用 Reindex API 將文檔從原始索引復制到新索引,方式同方法二。

  6. 驗證新索引是否包含已刪除該字段的正確文檔,且該字段不再出現在映射中。

  7. 如果一切正常,你可以刪除原始索引,并在需要時為新索引添加一個別名,使其名稱與原始索引相同。

結論

本文討論了在 Elasticsearch 中刪除文檔字段的三種方法:使用 Update API、通過修改后的 source 重新索引,以及更新映射后重新索引。每種方法都有其適用場景和權衡,請根據實際需求選擇合適的方法。在應用到生產環境之前,請務必測試你的變更并驗證結果。

原文:Deleting a field from a document in Elasticsearch - Elasticsearch Labs

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80350.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80350.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80350.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

元數據和主數據

元數據和主數據是數據管理中的兩個關鍵概念,其核心區別如下: 1. 定義與本質 元數據(Metadata) “關于數據的數據”,用于描述數據的屬性、結構、來源、用途等上下文信息。 示例:數據庫表的字段名稱、數據類型…

java的Stream流處理

Java Stream 流處理詳解 Stream 是 Java 8 引入的一個強大的數據處理抽象,它允許你以聲明式方式處理數據集合(類似于 SQL 語句),支持并行操作,提高了代碼的可讀性和處理效率。 一、Stream 的核心概念 1. 什么是 Str…

llama-Factory不宜直接掛接Ollama的大模型

前言 llama-Factory嘗試使用Ollama本地安裝的大模型。 一、在Ollama中安裝QWen 安裝qwen:0.5b 安裝完成了: 同理安裝qwen2.5:0.5b 安裝完畢后,再用ollama list進行查看: 我們在chatbox中進行查看: 說明這兩個大模型,…

基于WSL用MSVC編譯ffmpeg7.1

在windows平臺編譯FFmpeg,網上的大部分資料都是推薦用msys2mingw進行編譯。在win10平臺,我們可以采用另一種方式,即wslmsvc 實現window平臺的ffmpeg編譯。 下面將以vs2022ubuntu22.04 為例,介紹此方法 0、前期準備 安裝vs2022 &…

vue3+vite項目引入tailwindcss

從2025年1月tailwindcss4.0發布開始使用tailwindcss比之前簡化很多 1,安裝 yarn add tailwindcss tailwindcss/vite2,配置vite.config.js import tailwindcss from tailwindcss/vite;...plugins: [tailwindcss(),...] ...3,在主css文件頂部添加 注意一定是css文件,不能是sc…

藍牙RFCOMM協議概述

RFCOMM概述 概念 RFCOMM 協議提供了對 L2CAP 協議上的串行端口的模擬。該協議基于 ETSI 標準 GSM 07.10。 RFCOMM 采用與 TS07.10 相同的字節序列方式。所有二進制數字都按照從低位到高位的順序,從左至右讀。 兩個使用RFCOMM通信的藍牙設備可以打開多個仿真串行端…

[工具]B站緩存工具箱 (By 郭逍遙)

📌 項目簡介 B站緩存工具箱是一個多功能的B站緩存工具,包含視頻下載、緩存重載、文件合并及系統設置四大核心功能。基于yutto開發,采用圖形化界面操作,極大簡化B站資源獲取與管理流程。 工具可以直接將原本緩存的視頻讀取&#…

算法訓練營第十三天|226.翻轉二叉樹、101. 對稱二叉樹、 104.二叉樹的最大深度、111.二叉樹的最小深度

遞歸 遞歸三部曲: 1.確定參數和返回值2.確定終止條件3.確定單層邏輯 226.翻轉二叉樹 題目 思路與解法 第一想法: 遞歸,對每個結點進行反轉 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, le…

sunset:Solstice靶場

sunset:Solstice https://www.vulnhub.com/entry/sunset-solstice,499/ 1,將兩臺虛擬機網絡連接都改為NAT模式 2,攻擊機上做namp局域網掃描發現靶機 nmap -sn 192.168.23.0/24 那么攻擊機IP為192.168.23.182,靶場IP192.168.23.244 3&#xff…

AZScreenRecorder最新版:功能強大、操作簡便的手機錄屏軟件

AZScreenRecorder最新版是一款功能強大的手機錄屏軟件,專為安卓設備設計。它無需ROOT權限,支持無限錄制時長,操作簡單,錄制過程中可以隨時暫停,滿足不同用戶的個性化錄屏需求。此外,用戶還可以自定義分辨率…

模塊自動導入的小工具

import { ref, reactive, onMounted } from vue import { useRoute, useRouter } from vue-router項目里很多文件都需要引入這些公共庫,比較繁瑣,使用一個小工具可以自動導入,就不需要在每個文件里面都寫這些導入的代碼了。 通過命令行下載安…

【讀書筆記】《編碼:隱匿在計算機軟硬件背后的語言》01 邏輯與開關

【讀書筆記】《編碼:隱匿在計算機軟硬件背后的語言》01 邏輯與開關 前言01 邏輯與開關 前言 我是一名光學工程專業研二的學生,目前正處于找工作的階段,根據往年師兄師姐找工作的情況,在西安這個城市不出意外我能找到的應該就是嵌入…

TXT編碼轉換工具iconv

iconv.exe是實現TXT編碼轉換的命令行工具,支持幾百種編碼格式的轉換,利用它可以在自主開發程序上實現TXT文檔編碼的自動轉換。 一、命令參數格式 Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...] or: iconv -l 二、轉換的示例 將UTF-8…

軟考中級數據庫備考-上午篇

背景 新工作主要做大數據平臺,考一個軟考中級數據庫系統工程師,補足一下基礎知識。 基礎知識 1.計算機硬件基礎知識 正確答案:C 正確答案:D 正確答案:C 正確答案:BC 正確答案:B 正確答案:D 正確答案:A DMA建立內存與外設的直接…

AtCoder AT_abc405_d ABC405D - Escape Route

前言 BFS 算法在 AtCoder 比賽中還是會考的,因為不常練習導致沒想到,不僅錯誤 TLE 了很多,還影響了心態,3 發罰時后才 AC。 思路 首先,我們把所有位置和出口的距離算出來(用 BFS)&#xff0c…

【計算機視覺】目標檢測:yoloV1~yoloV11項目論文及對比

以下是 YOLO (You Only Look Once) 系列模型從 V1 到 V11 的詳細介紹和項目地址(截至2024年7月)。YOLO 是目標檢測領域的里程碑模型,以其 實時性 和 高精度 著稱,廣泛應用于自動駕駛、安防監控、工業檢測等領域。 YOLOv1 (2016) …

推薦系統架構設計

1.分析用戶行為數據?:? 收集用戶的活躍時間、點擊行為、瀏覽歷史等數據。?分析用戶的活躍模式,確定用戶最活躍的時間段。?kafka flink 數據庫 分析用戶行為并存儲 2. 預生成推薦內容?:? 在用戶活躍時間之前,預先生成推薦…

BERT類模型

1. BERT類模型是否需要處理 [CLS] 或池化? 那首先搞懂 [CLS] 和池化 (1)[CLS] 的作用 BERT 的輸入格式中,每個序列的開頭會添加一個特殊的 [CLS] Token(Classification Token)。它的設計初衷是為分類任務…

我的世界云端服務器具體是指什么?

我的世界云端服務器是指一種基于互聯網的多人游戲服務器,將游戲服務器運行在云平臺上,而不是在本地計算機中,這使用戶不需要考慮自身電腦的性能和網絡穩定性,只需要通過網絡連接到云端服務器,就可以享受到順暢的游戲體…

軟考(信息系統運行管理員)

第一章 信息系統運維概述 1.1 信息系統概述 信息的含義和類型 信息的含義: 一般:人們關心的事情的消息或知識。香農(信息論創始人):用來減少隨機不確定性的東西(標志著信息科學進入定量研究階段&#xff…