var SearchIndex = module.exports = function (options) { var logLevel = 'info'; var indexPath = 'si'; var logSilent = false; if (options) { if (options.logLevel) logLevel = options.logLevel; if (options.indexPath) indexPath = options.indexPath; if (options.logSilent) logSilent = options.logSilent; } indexes = level(indexPath, {valueEncoding: 'json'}), indexesMultiply = levelMultiply(indexes); searchIndexLogger = new (winston.Logger)({ transports: [ new (winston.transports.Console)({ level: logLevel, silent: logSilent }) ] }); calibrater.getTotalDocs(indexes, function(totalDocs) { searcher.setTotalDocs(totalDocs); }); return SearchIndex; };
module.exports = function(loc){ if(db){ return db; } else{ db = sublevel(levelup(loc)); db = levelplus(db); db = LevelMult(db, 'm'); return db; } }
module.exports = function(name){ if(!name){ return; } // each model is going to get it's own sublevel and index var modelDB = DB.sublevel(name, { valueEncoding: 'json' }), modelIndex = modelDB.sublevel('__index', { keyEncoding: bytewiseEncode, valueEncoding: 'json' }); modelDB = LevelMultiply(modelDB, 'm'); modelIndex = LevelMultiply(modelIndex, 'm'); var theModel = new Model(modelDB, modelIndex); modelDB.pre(function(ch, add){ switch(ch.type){ case 'put': // on put, index or re-index the object if(ch.value && ch.key && ch.value instanceof Object){ theModel.indexDocument(ch.value, ch.key); } break; case 'del': // on delete, unindex the object if(ch.key){ theModel.unindexDocument(ch.key) } break; } }); return theModel; // Meta helper methods // Model._index() // Model._unindex() }
rmdir('si', function(error){ indexes = level('si', {valueEncoding: 'json'}); indexesMultiply = levelMultiply(indexes); callback(err); });
var fs = require('fs'), level = require('level'), levelMultiply = require('level-multiply'), indexPeek = require('./indexing/indexPeek.js'), matcher = require('./matchers/matcher.js'), calibrater = require('./indexing/calibrater.js'), indexer = require('./indexing/indexer.js'), searcher = require('./mapreduce/searcher.js'), reverseIndex = level('si', {valueEncoding: 'json'}), reverseIndexMultiply = levelMultiply(reverseIndex); docFreqIndex = level('df', {valueEncoding: 'json'}); //init functions calibrater.getTotalDocs(docFreqIndex, function(totalDocs) { searcher.setTotalDocs(totalDocs); }); //end init exports.indexPeek = function(start, stop, callback) { indexPeek.indexPeek(start, stop, reverseIndex, function(msg) { callback(msg); }); }; exports.generateMatcher = function(callback) { matcher.generateMatcher(reverseIndex, function(msg) { callback(msg); }); }