gpt4 book ai didi

java - elasticsearch上满了时会自动执行批量操作吗

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:10 25 4
gpt4 key购买 nike

我正在使用elasticsearch java API。

我有一个批量请求,并且我要在此批量中添加几个更新请求。我没有正在执行的更新次数,因为它取决于之前的操作。

bulkRequest.add(esClientManager.getEsClient().prepareUpdate(...).setDoc(...).setDocAsUpsert(true));

我可能会花费数百万时间来做这件事。

我的问题很简单:批量将在满时自行执行,还是我必须自己检查并在需要时执行它(使用 numberOfActions 检索批量请求的数量)?

最佳答案

你必须自己做。至于什么时候,就看你的数据了。对于我所做的一切,我尝试处理大约 1000 条记录(在我的例子中相当于大约 500K 批量请求)。这似乎是一个很好的内存/时间权衡。

我通常做的事情是这样的

BulkRequestBuilder br = null;
/// some looping construct
while (rs.next()) {
if (br != null && br.numberOfActions() >= batchSize) {
processResponse(br.execute().get());
br = null;
}
if (br == null) {
br = client.prepareBulk();
}
// do whatever to create IndexRequest
br.add(ir);
}
if (br != null) {
processResponse(br.execute().get());
}

关于java - elasticsearch上满了时会自动执行批量操作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com