ES中的文档更新

ES中的文档更新

示例:

PUT /ecommerce/product/1
{
    "name" : "jiaqiangban gaolujie yagao",
    "desc" :  "gaoxiao meibai",
    "price" :  30,
    "producer" :      "gaolujie producer",
    "tags": [ "meibai", "fangzhu" ]
}

这是全量更新:即使我们只更新doc的某一个字段,也需要把其他字段都带上,否则其他字段的数据就会丢失

再看另一种:

POST /ecommerce/product/1/_update
{
  "doc": {
    "name": "jiaqiangban gaolujie yagao"
  }
}

采用这种方式doc的其他字段还是在的。


这里再谈谈PUTPOST的区别,

使用PUT时,我们要带上id,要不然会报错

那ID存在时,就是全量的更新,

ID不存在时,其实就是新增

使用POST时,

POST /ecommerce/product/1/_update

带了id,且是_update,那它是更新操作

如果说不带id

那他是个典型的新增操作,ES为随机为我们生成ID

posted @ 2020-10-07 19:32  HeliusKing  阅读(1001)  评论(0编辑  收藏  举报