/** cmd can be any valid ES suggest command **/ var peliasLogger = require( 'pelias-logger' ).get( 'service/suggest' ); var microtime = require( 'microtime' ); function service( backend, cmd, cb ){ // query new backend var startTime = microtime.nowDouble(); backend().client.suggest( cmd, function( err, data ){ peliasLogger.verbose( 'time elasticsearch query took:', microtime.nowDouble() - startTime ); // handle backend errors if( err ){ return cb( err ); } // map returned documents var docs = []; var unique_ids = []; var num_keys = Object.keys(data).length; var has_docs = function(obj) { return Array.isArray( obj ) && obj.length && obj[0].options && obj[0].options.length; }; for (var i=0, j=0; i