Elasticsearch增刪改查 之 —— Delete刪除

来源:http://www.cnblogs.com/xing901022/archive/2016/03/26/5321659.html
-Advertisement-
Play Games

刪除文檔也算是常用的操作了...如果把Elasticsearch當做一款普通的資料庫,那麼刪除操作自然就很常用了。如果僅僅是全文檢索,可能就不會太常用到刪除。 Delete API 刪除API,可以根據特定的ID刪除文檔。 會返回下麵的消息: 版本 每個索引都通過版本來維護。當想要刪除某個文檔的時候 ...


刪除文檔也算是常用的操作了...如果把Elasticsearch當做一款普通的資料庫,那麼刪除操作自然就很常用了。如果僅僅是全文檢索,可能就不會太常用到刪除。

Delete API

刪除API,可以根據特定的ID刪除文檔。

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1'

會返回下麵的消息:

{
    "_shards" : {
        "total" : 10,
        "failed" : 0,
        "successful" : 10
    },
    "found" : true,
    "_index" : "twitter",
    "_type" : "tweet",
    "_id" : "1",
    "_version" : 2
}

版本

每個索引都通過版本來維護。當想要刪除某個文檔的時候,版本可以用來確認刪除的文檔。而想要刪除一個已經被刪除的文檔,則不會發生任何變化。

路由

如果在索引的時候提供了路由,那麼刪除的時候,也需要指定相應的路由:

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1?routing=kimchy'

上面的例子中,想要刪除id為1的索引,會通過固定的路由查找文檔。如果路由不正確,可能查不到相關的文檔。對於某種情況,需要使用_routing參數,但是卻沒有任何的值,那麼刪除請求會廣播到每個分片,執行刪除操作。

Parent

刪除操作也可以指定父文檔。再刪除父文檔的時候,不會刪除子文檔。有一種刪除子文檔的方法,就是使用delete-by-query。

自動創建索引

在執行刪除操作時,如果沒有創建過索引,則會自動創建。類型也是一樣。

分散式

對於分散式的環境,主分片和副分片會維護一個共同的組ID,執行刪除操作會向這個組ID發送請求。

Write Consistency

Control if the operation will be allowed to execute based on the number of active shards within that partition (replication group). The values allowed are one, quorum, and all. The parameter to set it isconsistency, and it defaults to the node level setting of action.write_consistency which in turn defaults toquorum.

For example, in a N shards with 2 replicas index, there will have to be at least 2 active shards within the relevant partition (quorum) for the operation to succeed. In a N shards with 1 replica scenario, there will need to be a single shard active (in this case, one and quorum is the same).

refresh

refresh參數設置為true,可以在刪除操作執行後,立即刷新分片,保證其數據可以立即被查詢。不過要慎用!

timeout

The primary shard assigned to perform the delete operation might not be available when the delete operation is executed. Some reasons for this might be that the primary shard is currently recovering from a store or undergoing relocation. By default, the delete operation will wait on the primary shard to become available for up to 1 minute before failing and responding with an error.

當分片不可用的時候,刪除操作會等待一段時間執行。可以設置其timeout

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1?timeout=5m'

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • l 時間為種子。白色格子10%概率生成。綠色和紅色子塊的坐標隨機生成。 srand((unsigned)time(NULL)); //以時間為隨機種子 for(i=1;i<=size;i++) { for(j=1;j<=size;j++) { if(1==rand()%10) //10%摡率達成 g ...
  • 項目結構: 添加頁面: 說明:這裡只註重操作,對界面的美工沒有下工夫,希望大家理解...... 列表頁面: 修改頁面: 項目中所需的sql: conn.php add.php list.php delete.php preEdit.php postEdit.php ...
  • C++準確說是一門中級語言,介於彙編和高級語言之間吧,要求程式員瞭解電腦的內部數據存儲。個人認為,作為學生還是花功夫學C++,因為《設計模式》《數據結構》這些課程基本上還是C++應付的比較好(我的切身體會),學習 C++,認真閱讀c++ primer,而後配合 The ADAPTIVE Commu ...
  • 同一個項目有時會涉及到多個資料庫,也就是多數據源。多數據源又可以分為兩種情況: 1)兩個或多個資料庫沒有相關性,各自獨立,其實這種可以作為兩個項目來開發。比如在游戲開發中一個資料庫是平臺資料庫,其它還有平臺下的游戲對應的資料庫; 2)兩個或多個資料庫是master-slave的關係,比如有mysql ...
  • 本篇分為兩部分: 一、Swift 中 protocol 組合的使用 二、Swfit 中 static和class 的使用 一、Swift 中 protocol 組合的使用 在 Swift 中我們可以使用 Any 來表示任意類型(public typealias Any = protocol<>),是 ...
  • 根據《ACM程式設計》寫的,用實例展示vector用法。 方法:push_back(), insert(), erase(), clear(), size(), empty(); 演算法:reverse(), sort(). ...
  • 系統啟動一個線程的成本是比較高的,因為它涉及到與操作系統的交互,使用線程池的好處是提高性能,當系統中包含大量併發的線程時,會導致系統性能劇烈下降,甚至導致JVM崩潰,而線程池的最大線程數參數可以控制系統中併發線程數不超過次數。 一、Executors 工廠類用來產生線程池,該工廠類包含以下幾個靜態工 ...
  • 1、定義一個方法並且調用,這樣會很方便,大大減少不必要的浪費。但定義方法之前首先得明確該方法最後的結果想要執行什麼?還要明確在該方法中是否需要一些參數(形參) 例如下麵的代碼片段: 1 // 進入租車系統 2 public void YesOrNo() { 3 System.out.println( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...