mirror of https://github.com/requarks/wiki
parent
576ba7fde2
commit
528fab6c87
@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
|
||||
var Promise = require('bluebird'),
|
||||
_ = require('lodash'),
|
||||
path = require('path'),
|
||||
searchIndex = Promise.promisifyAll(require('search-index')),
|
||||
stopWord = require('stopword');
|
||||
|
||||
/**
|
||||
* Search Model
|
||||
*/
|
||||
module.exports = {
|
||||
|
||||
_si: null,
|
||||
|
||||
/**
|
||||
* Initialize Search model
|
||||
*
|
||||
* @param {Object} appconfig The application config
|
||||
* @return {Object} Search model instance
|
||||
*/
|
||||
init(appconfig) {
|
||||
|
||||
let dbPath = path.resolve(ROOTPATH, appconfig.datadir.db, 'search-index');
|
||||
|
||||
this._si = searchIndex({
|
||||
deletable: true,
|
||||
fieldedSearch: true,
|
||||
indexPath: dbPath,
|
||||
logLevel: 'error',
|
||||
stopwords: stopWord.getStopwords(appconfig.lang).sort()
|
||||
}, (err, si) => {
|
||||
if(err) {
|
||||
winston.error('Failed to initialize search-index.', err);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
};
|
Loading…
Reference in new issue