elasticsearch-scroll

This helps out when you scan & scroll. This manages the
scrolling so that you are returned all of the hits.
Installation
npm install --save elasticsearch-scroll
Usage
If I start with an index foo with 20 documents of type bar,
var elasticsearch = require('elasticsearch'),
client = new elasticsearch.Client(),
identity = require('lodash.identity'),
scrollToEnd = require('../index')(client);
client.search({
index: 'foo',
type: 'bar',
scroll: '30s'
})
.then(scrollToEnd(identity, []))
.tap(function (results) {
console.log(results);
});
will yield an array containing all 20 of your documents. Without scrollToEnd
you would just get 10 documents.
API
module(client): a function which accepts an [elasticsearch] client and returns
a function, scrollToEnd.
scrollToEnd(mapper, initial, response): a curried function which takes
a mapper (a function which maps results from elastic search), the initial
value of the results to return and a response from elasticsearch.
Testing
Run elasticsearch locally and npm test.