2014-01-09 53 views
1

我有一个像如何检查包含在沙发基地视图中的关键

function (doc, meta) 
    { 
    if(doc.Tenant) 
    { 
    emit([doc.Tenant.Id,doc.Tenant.User.Name],doc); 
    } 
    } 

一个视图在此视图我希望所有的值属于Tenant.Id == 1和User.Name其中包含“一个“

我可以通过收集属于特定Tenant Id的所有Tenant数据在我的C#中进行搜索。 但是我对每个租户都有数百万的数据。所以需要在服务器端检查这一点。 这是可能的搜索。

+0

是否要更改ID和字母?即有时你会想搜索id 2并且名字包含F? – scalabilitysolved

回答

1

我猜你希望能够改变你在字符串中搜索哪个字母,不幸的是couchbase不会成为这种查询的最佳选择。

如果它总是你想要搜索的字母'a',那么你可以做一个这样的地图,然后查询ID。

function (doc, meta) { 

    if(doc.Tenant) { 
    var name = doc.Tenant.User.Name.toLowerCase(); 
    if(name.indexOf("a") > -1) {  
     emit(doc.Tenant.Id,null); 
    } 
    } 
} 

然而,如果你希望能够动态地改变其信,​​甚至串您要搜索的名字,那么你要考虑像elasticsearch(伟大的文本搜索)。 Couchbase有一个elasticsearch传输插件,可以自动复制到您的elasticsearch节点。

这里是ES和Couchbase介绍

http://www.slideshare.net/Couchbase/using-elasticsearch-and-couchbase-together-to-build-large-scale-applications

安装和文档入门与ES插件

http://docs.couchbase.com/couchbase-elastic-search/

性凉教程,详细说明了如何添加在ES数据之上的GUI,以便于过滤。

http://blog.jeroenreijn.com/2013/07/visitor-analysis-with-couchbase-elasticsearch.html