Elasticsearch部分更新与完全更新?

时间:2016-02-08 05:23:04

标签: elasticsearch

问题:我有一个应用程序,只有在对整个文档进行验证后,才能始终将对文档的更改持久保存到ElasticSearch中。所以我总是要检索完整的文件!部分更新是否更好然后关于性能的完全更新还有其他任何好处吗?

partial update的Elasticsearch文档提到文档是不可变的,而内部部分更新(如完全更新)会重新索引整个文档。

  

在外部,似乎我们正在部分更新文档。但是,在内部,更新API只管理相同的retrieve-change-reindex进程

文档还提到了以下内容,我认为这是“部分更新完全更新的好处”,但我不明白。如果碎片A中有文档,我会对其进行全面更新,或者对一个请求进行部分更新。多个请求在这里意味着什么?

  

不同之处在于此过程在分片中发生,从而避免了多个请求的网络开销

1 个答案:

答案 0 :(得分:3)

如上所述,partial updatefull update使用retrieve-change-reindex进程进行更新。

但区别在于: 使用Partial Update的{​​{1}}通过单个客户端请求获得update API,而使用retrieve-change-reindex的{​​{1}}需要单独的full updateindex API请求,这就是get有多个请求的网络开销的原因。