17.全量替换、强制创建、删除

主要知识点

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

(2)不会立即物理删除,只会将其标记为deleted,当数据越来越多的时候,在后台自动删除

转载于:https://www.cnblogs.com/liuqianli/p/8436605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值