full text search using reds, issue #142

This commit is contained in:
Baris Soner Usakli
2013-08-03 20:54:16 -04:00
parent 797d05a84a
commit d6b9a2799b
10 changed files with 179 additions and 42 deletions

View File

@@ -6,7 +6,9 @@ var RDB = require('./redis.js'),
async = require('async'),
utils = require('../public/src/utils'),
plugins = require('./plugins');
plugins = require('./plugins'),
reds = require('reds'),
search = reds.createSearch('nodebbsearch');
(function(PostTools) {
PostTools.isMain = function(pid, tid, callback) {
@@ -56,6 +58,10 @@ var RDB = require('./redis.js'),
posts.setPostField(pid, 'edited', Date.now());
posts.setPostField(pid, 'editor', uid);
search.remove(pid, function() {
search.index(content, pid);
});
posts.getPostField(pid, 'tid', function(tid) {
PostTools.isMain(pid, tid, function(isMainPost) {
if (isMainPost)
@@ -84,6 +90,7 @@ var RDB = require('./redis.js'),
var success = function() {
posts.setPostField(pid, 'deleted', 1);
search.remove(pid);
posts.getPostFields(pid, ['tid', 'uid'], function(postData) {
@@ -119,7 +126,7 @@ var RDB = require('./redis.js'),
var success = function() {
posts.setPostField(pid, 'deleted', 0);
posts.getPostFields(pid, ['tid', 'uid'], function(postData) {
posts.getPostFields(pid, ['tid', 'uid', 'content'], function(postData) {
user.incrementUserFieldBy(postData.uid, 'postcount', 1);
@@ -132,6 +139,8 @@ var RDB = require('./redis.js'),
topics.updateTimestamp(postData.tid, timestamp);
});
});
search.index(postData.content, pid);
});
};