From da4fa58e0e67e65d5111bab425d5d1dac865d1d8 Mon Sep 17 00:00:00 2001 From: Harish Krishna Date: Mon, 27 Oct 2014 15:13:12 -0400 Subject: [PATCH] mixing the results so that we always have the limit (10) coming back --- controller/suggest.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/controller/suggest.js b/controller/suggest.js index 8ce97791..f3be004d 100644 --- a/controller/suggest.js +++ b/controller/suggest.js @@ -94,14 +94,20 @@ function setup( backend, query ){ } async.parallel(async_query, function(err, results) { - var splice_length = parseInt((req.clean.size / Object.keys(results).length), 10); - // results is equal to: {a: docs, b: docs, c: docs} - var combined = []; + var combined = []; + var total_results = 0; + + for (keys in results) { + total_results += results[keys].length; + } + for (keys in results) { + var results_length= results[keys].length; + var splice_length = parseInt(Math.ceil(results_length*results_length/total_results),10); combined = combined.concat(results[keys].splice(0,splice_length)); } - + combined = combined.splice(0, req.clean.size); combined = dedup(combined); respond(combined); });