17 全量替換 強制建立 刪除

2022-09-02 23:12:22 字數 1284 閱讀 9455

主要知識點

1、document的全量替換

2、document的強制建立

3、document的刪除

1、document的全量替換

(1)語法與建立文件是一樣的,如果document id不存在,那麼就是建立;如果document id已經存在,那麼就是全量替換操作,替換document的json串內容,但是 "_version": 的值會改變,原來被替換的內容並沒有被刪除掉,只是被標記為deleted。只有當es的資料越來越多時,es會把標記為deleted的資料進行物理刪除,以釋放空間。

(2)document是不可變的,如果要修改document的內容,第一種方式就是全量替換,直接對document重新建立索引,替換裡面所有的內容

(3)es會將老的document標記為deleted,然後新增我們給定的乙個document,當我們建立越來越多的document的時候,es會在適當的時機在後台自動刪除標記為deleted的document

2、document的強制建立

(1)建立文件與全量替換的語法是一樣的,有時我們只是想新建文件,不想替換文件,如果強制進行建立呢?

(2)put /index/type/id?op_type=create,

put /index/type/id/_create

所建立的文件的id如果已存在就會報錯

"error": {

"root_cause": [

"type": "version_conflict_engine_exception",

"reason": "[text_type][2]: version conflict, document already exists (current version [1])",

"index_uuid": "d5yep9ejtkevac315oxfwa",

"shard": "2",

"index": "test_index"

"type": "version_conflict_engine_exception",

"reason": "[text_type][2]: version conflict, document already exists (current version [1])",

"index_uuid": "d5yep9ejtkevac315oxfwa",

"shard": "2",

"index": "test_index"

"status": 409

3、document的刪除

(1)delete /index/type/id

ES document刪除建立,替換

1.document的全量替換 2.document的強制建立 3.document的刪除 1.document的全量替換 語法與建立文件是一樣的,如果document id不存在,那麼就建立,如果document id存在,那麼就全量替換,替換document中的 json串的內容 2.docum...

sqlalchemy批量刪除資料 全量刪除

問題 sqlalchemy如何批量刪除多條資料 解決 使用引數synchronize session false,或for迴圈 方法 users self.db.query user filter user.id.in 1,2,3 all self.db.delete u for u in user...

HTML DOM的建立,刪除及替換

建立html元素 var newelement document.createelement p 建立新元素p var newtextnode document.createtextnode 文字節點 建立新文字節點 向 元素追加文字節點 var element document.getelemen...