我想在网格中管理我的用户实体。我想对它们进行排序,并且我想为每一列都有一个搜索过滤器。
我的动态生成的临时视图工作正常:
function(doc){
if(doc.type === 'User' &&
// Dynamic filters: WHERE firstName LIKE '%jim%' AND lastName LIKE '%knopf%'
(doc.firstName.match(/.*?jim.*?/i) &&
doc.lastName.match(/.*?knopf.*?/i)) ) {
// Dynamic sort
emit(doc.lastName, doc);
}
}
但到处都写着你必须避免临时视图。有没有更好的办法?我应该在运行时按需保存这些搜索吗?
Thanks
你绝对应该not使用临时视图,因为每次查询它们时都必须重新计算。 (这是一个非常“昂贵”的过程)当您提前知道要搜索的字段时,存储的视图是完美的。 (它构建索引一次,之后只进行增量更改)
但是,您将无法获得“包含”搜索。 (您可以获得精确匹配和“开头为”匹配,但这不是您的示例所显示的)如果您需要临时查询,您应该认真考虑couchdb-lucene https://github.com/rnewson/couchdb-lucene.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)