当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript Client.bulk方法代码示例

本文整理汇总了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();
  });
}
开发者ID:chbrown,项目名称:npm-search-server,代码行数:25,代码来源:database.ts

示例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);
            });
    });
开发者ID:consumr-project,项目名称:cp,代码行数:54,代码来源:updater.ts


注:本文中的elasticsearch.Client.bulk方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。