В моем текущем коде я выбираю несколько документов и затем обновляю их один за другим следующим образом:
results.hits.hits.forEach(function (hit) {
hit._source.taskName = 'My-task-name';
esClient.bulk({
body: [
{update: {_index: 'my-index', _type: 'default', _id: hit._id}},
{doc: hit._source}
]
}, function (err, resp) {
// ...
if (err) {
console.log(err);
}
if(resp) {
console.log(resp)
}
});
});
У этого подхода есть проблема с тайм-аутом.
Итак, я хочу обновить несколько документов за один запрос.Но я не уверен, как создать тело для него, отправить запрос асинхронно, а затем, как поступить с ответом.В основном я хотел бы разбить «результаты» на куски, скажем, на 100 документов, и обновить чанк в одном запросе.