【发布时间】:2019-06-08 11:23:21
【问题描述】:
我的应用程序允许在单个请求中更新多个 elasticsearch documents。
我使用 ElasticSearch BulkRequestBuilder 批量更新所有此类文档。
BulkRequestBuilder bulkRequestBuilder = elasticSearchClient.prepareBulk();
documents.forEach(id -> {
UpdateRequest updateRequest = new UpdateRequestBuilder(elasticSearchClient)
.setType("MyDocumentType")
.setIndex("MyDocumentIndex")
.setId(id)
.setDoc("fieldName", "valueToBeUpdated")
.request();
bulkRequestBuilder.add(updateRequest);
});
//update in bulk
bulkRequestBuilder.get();
所有文档都使用 valueToBeUpdated 更新,但 ElasticSearch 在内部需要时间来更新所有文档,但对 bulkRequestBuilder.get() 的调用甚至在文档更新之前返回。 (表明Async ElasticSearch 引擎的性质)。
有人可以建议如何使其成为所有文档的Sync 更新吗?
【问题讨论】:
标签: spring-boot elasticsearch nosql spring-data-elasticsearch