本文整理汇总了TypeScript中elasticsearch.Client.bulk方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Client.bulk方法的具体用法?TypeScript Client.bulk怎么用?TypeScript Client.bulk使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类elasticsearch.Client
的用法示例。
在下文中一共展示了Client.bulk方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: insertPackages
function insertPackages(packages: registry.Package[], callback: (error?: Error) => void) {
logger.debug('inserting batch of %d packages, from %s to %s', packages.length,
packages[0].name, packages[packages.length - 1].name);
var body = [];
packages.forEach(pkg => {
body.push({index: {_id: pkg.name}}, pkg);
});
client.bulk({
index: 'npm',
type: 'packages',
body: body
}, (error: Error, result) => {
if (error) {
logger.error('failed to insert batch: %s', error.message);
return callback(error);
}
logger.debug('inserting batch took %d ms', result.took);
if (result.errors) {
logger.warning('batch insert encountered non-fatal errors: %j', result.errors);
}
callback();
});
}
示例2: filter
return new Promise<UpdaterAck>((resolve, reject) => {
var to_delete = filter(rows, { __deleted: true }),
to_create = filter(rows, { __deleted: false, __created: true }),
to_update = filter(rows, { __deleted: false, __created: false });
log.debug('bulk elasticsearch edit');
log.debug('creating %s %s', to_create.length, def.name);
log.debug('updating %s %s', to_update.length, def.name);
log.debug('deleting %s %s', to_delete.length, def.name);
if (!rows.length) {
return resolve({ ok: true, def });
}
es.bulk({
body: prep_body(rows.reduce((edit, row) => {
if (row.__deleted) {
append(edit, {
delete: gen_index(def, row)
});
} else {
append(edit, {
index: gen_index(def, row)
});
append(edit, merge({
__label: row.__label
}, pick(row, def.fields)));
}
return edit;
}, []))
})
.then(ack => {
if (ack.errors) {
throw new ElasticsearchBulkUpdateError(def.name, ack);
}
log.debug('done pushing updates to %s', def.name);
log.debug('took: %s, errors: %s', ack.took, ack.errors);
resolve({ ok: !ack.errors, def });
})
.catch(ElasticsearchBulkUpdateError, err => {
log.error('error making bulk update', err.ack.items);
reject(err);
})
.catch(err => {
log.error(err);
log.error('error running elasticsearch update for %s. %s',
def.name, err.stack);
reject(err);
});
});