bulk es 刪除 ES bulk 批量操作

2021-10-12 15:49:35 字數 1112 閱讀 4810

bulk允許在乙個請求中進行多個操作(create、index、update、delete),也就是可以在一次請求裡做很多事情

也由於這個關係,因此bulk的請求體和其他請求的格式會有點不同

bulk的請求模板

分成action、metadata和doc三部份

action : 必須是以下4種選項之一

index(最常用) : 如果文件不存在就建立他,如果文件存在就更新他

create : 如果文件不存在就建立他,但如果文件存在就返回錯誤

使用時一定要在metadata設定_id值,他才能去判斷這個文件是否存在

update : 更新乙個文件,如果文件不存在就返回錯誤

使用時也要給_id值,且後面文件的格式和其他人不一樣

delete : 刪除乙個文件,如果要刪除的文件id不存在,就返回錯誤

使用時也必須在metadata中設定文件_id,且後面不能帶乙個doc,因為沒意義,他是用_id去刪除文件的

metadata : 設定這個文件的metadata,像是_id、_index、_type...

doc : 就是一般的文件格式

bulk 如果一次性資料過多,很容易導致超時

檢視bulk 原始碼發現

@query_params('_source', '_source_exclude', '_source_include', 'fields',

'pipeline', 'refresh', 'routing', 'timeout', 'wait_for_active_shards')

def bulk(self, body, index=none, doc_type=none, params=none):

有個timeout引數,可以設定超時時間,預設是10s

bulk(es, actions, request_timeout=100)

bulk es 刪除 ES 批量操作 bulk

文章目錄 基本語法 批量操作的型別 實操create update delete 復合操作 參考資源 基本語法 bulk操作和以往的普通請求格式有區別。不要格式化json,不然就不在同一行了,這個需要注意。n n n n 代表批量操作的型別,可以是新增 刪除或修改 n是每行結尾必須填寫的乙個規範,每...

Hibernate 批理更新,刪除,插入

在hibernate 2時.一些批量的sql 操作,經常產生效能影響如刪除100000個.在記憶體中載入如此多的對像是沒有必要,所以我們的解決方法就是在hibernate中直接用jdbc 操作 session.connection statment st connection.createsatem...

Exchange2010批量刪除郵件

在exchange2010裡若要刪除某個使用者發出的郵件,可以通過emc控制台授予管理員 管理完全訪問許可權 通過owa登入到使用者郵箱刪除。另外,更簡便的方法為使用exchange2010的命令來處理,可分以下幾步處理 1 對操作使用者賦予mailbox import and export組許可權...