elasticsearch-scrolltoend

Elasticsearch-js client extension for processing scroll results.

Usage no npm install needed!

<script type="module">
  import elasticsearchScrolltoend from 'https://cdn.skypack.dev/elasticsearch-scrolltoend';
</script>

README

elasticsearch-scrolltoend

Elasticsearch-js client extension for processing scroll results.

This module provides scrollToEnd function which allows for processing each batch while scrolling search results.

Setup

Install the package.

npm install --save elasticsearch-scrolltoend

Then extend the Elasticsearch API by including this plugin.

'use strict';

const hosts = ['127.0.0.1'];
const apiVersion = '2.x';
const elasticsearch = require('elasticsearch');
const esScrollToEnd = require('elasticsearch-scrolltoend');

const client = new elasticsearch.Client({
  hosts, apiVersion,
  plugins: [ esScrollToEnd.plugin ]
});

Example

Define a function for processing batches.

let batchHandler = function(res) {
  console.log(res);
  return Promise.resolve();
};

Start scrolling.

let index = `products`;
let scroll = '60s';
let scrollToEnd = client.scrollToEnd(scroll, batchHandler);
return client.search({index, scroll, search_type: 'scan'}).then(scrollToEnd);