问题:我有一个应用程序,只有在针对完整文档进行验证后,对文档的更改才应始终保留到 ElasticSearch 中。所以我总是要检索完整的文档!在性能方面,部分更新是否比完全更新更好?还有其他好处吗?
部分更新的Elasticsearch 文档提到文档是不可变的,并且内部部分更新(如完整更新)会重新索引整个文档。
从外部看,似乎我们正在对文档进行部分更新。然而,在内部,更新 API 只是管理相同的检索-更改-重新索引过程
该文档还提到了以下内容,我认为这是“部分更新优于完全更新的好处”,但我不明白。如果分片 A 中有一个文档并且我对其进行了完整更新或部分更新,这总共是一个请求。这里的多个请求是什么意思?
不同的是这个过程发生在一个shard内,从而避免了多个请求的网络开销
正如您上面提到的两个partial update及full update使用retrieve-change-reindex过程进行更新用。
但不同的是:
Partial Update它使用update API实现retrieve-change-reindex通过一个单一的客户端请求,而full update其用途index API需要单独get和index要求,这就是为什么full update有网络开销多个请求。
| 归档时间: | 
 | 
| 查看次数: | 2955 次 | 
| 最近记录: |