您当前的位置: 首页 > 

java持续实践

暂无认证

  • 3浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

es 7.x 文档的全量修改 局部修改 删除文档

java持续实践 发布时间:2022-01-09 16:20:06 ,浏览量:3

文章目录
      • 全量修改
      • 局部修改
      • 删除文档

全量修改

全量修改也叫完全覆盖. 请求方式put 请求url: http://127.0.0.1:9200/shopping/_doc/1 代表对id为1的数据进行修改 请求体: 内容为要全量修改的数据内容

{
    "title": "小米手机",
    "category": "小米1",
    "images": "http://xiaomi.com",
    "price": 1999.00
}

执行结果, result为update代表为更新操作.

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 4,
    "result": "updated",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 8,
    "_primary_term": 1
}

执行查询: 请求url: http://127.0.0.1:9200/shopping/_doc/1 请求方式为get 请求结果为:

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 8,
    "_seq_no": 12,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "title": "小米手机",
        "category": "小米1",
        "images": "http://xiaomi.com",
        "price": 1999.00
    }
}

全量修改, 如果只传递某几个字段: 例如执行http://127.0.0.1:9200/shopping/_doc/1 的put请求时, 请求体如下:

{
    "title": "小米手机",
    "category": "小米1",
    "price": 1999.00
}

再次执行查询操作. 结果如下: 可以看到只有三个属性了.

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 9,
    "_seq_no": 13,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "title": "小米手机",
        "category": "小米1",
        "price": 1999.00
    }
}
局部修改

由于局部更新, 每次更新的结果不是相同的, 因此不是幂等性操作, 因此不支持put操作, 只支持post请求操作. 请求url: 注意id前面是_update 代表要执行更新操作 http://127.0.0.1:9200/shopping/_update/1 请求体如下: 代表要把id为1的title更新为"华为手机"

{
    "doc": {
        "title": "华为手机"
    }
}

执行结果如下:

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 10,
    "result": "noop",
    "_shards": {
        "total": 0,
        "successful": 0,
        "failed": 0
    },
    "_seq_no": 14,
    "_primary_term": 1
}

再次执行查询操作: 结果如下, 成功把id为1的title进行了修改, 并且没有像全量修改那样, 把未修改的属性给弄没了. 在这里插入图片描述

删除文档

请求方式 delete 请求url: http://127.0.0.1:9200/shopping/_doc/1 请求结果:

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 11,
    "result": "deleted",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 15,
    "_primary_term": 1
}

由于在es中,删除一个文档并不是真的删除, 只是打一个标记的逻辑删除, 因此, 在上面删除的例子中, 如果下次再创建一个id为1的文档, 则_version字段会进行递增为12.

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0885s