我有以下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?
我担心当我有hello
个world
和完全不同的-(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;
}