Couchdb通过多个查询进行搜索

时间:2017-01-03 17:35:58

标签: javascript couchdb

我有以下map函数来索引文档中的每个特定字母数字字,以便我可以搜索它。

Array.prototype.map = function(func) {
    var i, r = [];
    for(i = 0; i < this.length; i += 1) {
        r[i] = func(this[i]);
    }
    return r;
};

Array.prototype.reduce = function(val, func) {
    var i;
    for (i = 0; i < this.length; i += 1) {
        val = func(val, this[i]);
    }
    return val;
}

Array.prototype.uniq = function() {
    return this.reduce([], function(list, e) {
        if (list.indexOf(e) < 0) {
            return list.concat([e]);
        } else {
            return list;
        }
    });
}

function(doc) {
    var tokens;
    if (doc.name) {
        tokens = doc.name.toLowerCase().split(/[^A-Z0-9\-_]+/i).uniq();
        tokens.map(function(token) {
            emit(token, doc);
        });
    }
}

所以,如果我这样做:

db.view('documents/keywords', { key: "hello" });

它会列出其中包含hello字样的每个文档。

我的问题是,如果我想找到同时包含单词hello和单词world的内容,是否有更有效的方法可以执行此操作,然后对我的视图执行两次查询,以及然后客户端找出两个查询中都会弹出哪个ID?

我担心当我有helloworld和完全不同的-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ CGFloat height = 0.0; if (tableView == self.tableviewComments) { return UITableViewAutomaticDimension; }else if (tableView == self.tableViewFriends) { height = 44.0; } return height; }

时,它会开始大规模麻烦

0 个答案:

没有答案