在上一篇博客ElasticSearch-简介,对索引操作中知道,如果插入一条数据,该ID存在的情况下,文档将会覆盖旧的文档,然后重新索引整个文档。那么有没有办法使其部分更新,例如在某个请求时对计数器增加。
update请求最简单的一种形式是接收文档的一部分作为doc参数,它只是与现有的文档合并。对象被合并到一起,覆盖现有的字段,增加的新的字段。例如在张三的信息中增加score和favorite字段
curl -XPOST 'http://localhost:9200/grade3/class2/1/_update' -d '
{
"doc":{
"score":80,
"favorite":["music","football"]
}
}
'
此时,就完成了对张三的信息的更改,我们查询一下张三的信息,获得:
{
"_index" :

本文探讨了如何在ElasticSearch中进行部分更新,例如只更新文档的特定字段,而不是覆盖整个文档。通过合并文档和使用脚本更新方式,可以实现这一目标。同时,文章还讨论了在部分更新时遇到的冲突问题,特别是如何利用`retry_on_conflict`参数处理更新冲突,以自动重试更新操作,默认重试次数为0。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



