示例#1
0
module.exports = function(db) {

	db.postSearch = redisSearch.createSearch('nodebbpostsearch', db.client);
	db.topicSearch = redisSearch.createSearch('nodebbtopicsearch', db.client);

	db.searchIndex = function(key, data, ids, callback) {
		var method = key === 'post' ? db.postSearch : db.topicSearch;

		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.topicSearch;

		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.topicSearch;

		async.eachLimit(ids, 500, function(id, next) {
			method.remove(id, next);
		}, function(err) {
			callback(err);
		});
	};
};
exports.createIndices = function (langugage, callback) {
	callback = callback || function () {};
	db.postSearch = redisSearch.createSearch('nodebbpostsearch', db.client);
	db.topicSearch = redisSearch.createSearch('nodebbtopicsearch', db.client);
	callback();
};