(36)ElasticSearch文檔修改,刪除原理解析


  修改文檔內容有兩種方式

  1、全部替換:相當於添加一個新文檔,把原有文檔全部覆蓋掉,比如要修改一個age,其余字段也要全部指定。 其實是把原文檔標記為deleted,又創建了一個新文檔,隨着數據的增加,es會在合適的時間把標記為deleted的文檔刪除掉。

PUT /lib/user/1
{
"first_name":"Jane",
"last_name":"Lucy",
"age":27,
"about":"I like to collect rock albums",
"interests":["music"]
}

  2、部分替換:使用_update 只需要指明要修改的字段即可,es查詢出document然后使用用戶提交過來的數據更新到document中,已有的document被標記為deleted

然后再創建一個新的document。

POST /lib/user/4/_update
{
"doc":{
"age":28
}
}

  刪除文檔,也是先標記為deleted,es在合適的時間再刪除掉。

DELETE /lib/user/4

  兩種方式的區別:

  post方式比put方式網絡傳輸的次數要少,從而提高了性能,post方式從查詢文檔到修改文檔,再到創建新的文檔都是在es內部實現的,post方式發生並發沖突的可能性降低了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM