4

我想在网格中管理我的用户实体。我想对它们进行排序,并且我想为每一列设置一个搜索过滤器。

我的动态生成的临时视图工作正常:

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);
  }
}

但是到处都写着你必须避免临时视图。有没有更好的办法?我应该在运行时按需保存这些搜索吗?

谢谢

4

1 回答 1

4

您绝对应该使用临时视图,因为每次查询它们时都必须重新计算它们。(这是一个非常“昂贵”的过程)当您提前知道要搜索的字段时,存储视图是完美的。(它建立一次索引,之后只进行增量更改)

但是,您将无法获得“包含”搜索。(您可以获得完全匹配和“开始于”匹配,但这不是您的示例所显示的)如果您需要临时查询,您应该认真考虑couchdb-lucene

于 2011-07-16T14:41:27.843 回答