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的其他字段还是在的。
这里再谈谈PUT
和POST
的区别,
使用PUT时,我们要带上id,要不然会报错
那ID存在时,就是全量的更新,
ID不存在时,其实就是新增
使用POST时,
如POST /ecommerce/product/1/_update
带了id,且是_update
,那它是更新操作
如果说不带id
那他是个典型的新增操作,ES为随机为我们生成ID
你所看得到的天才不过是在你看不到的时候还在努力罢了!