UNPKG

audiovanish-plugin-dbsearch

Version:
51 lines (39 loc) 1.23 kB
'use strict'; var redisSearch = require('redisearch'); var async = require.main.require('async'); module.exports = function(db) { db.postSearch = redisSearch.createSearch('audiovanishpostsearch', db.client); db.trackSearch = redisSearch.createSearch('audiovanishtracksearch', db.client); db.searchIndex = function(key, data, ids, callback) { var method = key === 'post' ? db.postSearch : db.trackSearch; var indexData = ids.map(function(id, index) { return { id: id, data: data[index] }; }); async.eachLimit(indexData, 500, function(indexData, next) { method.index(indexData.data, indexData.id, function(err, res) { callback(err); }); }, function(err) { callback(err); }); }; db.search = function(key, data, limit, callback) { var method = key === 'post' ? db.postSearch : db.trackSearch; method.query(data, 0, limit - 1, callback); }; db.searchRemove = function(key, ids, callback) { callback = callback || function() {}; if (!ids.length) { return callback(); } var method = key === 'post' ? db.postSearch : db.trackSearch; async.eachLimit(ids, 500, function(id, next) { method.remove(id, next); }, function(err) { callback(err); }); }; };