Mapreduce 如何检查沙发底座视图键中的内容
我有一个像这样的观点Mapreduce 如何检查沙发底座视图键中的内容,mapreduce,couchdb,couchbase,membase,Mapreduce,Couchdb,Couchbase,Membase,我有一个像这样的观点 function (doc, meta) { if(doc.Tenant) { emit([doc.Tenant.Id,doc.Tenant.User.Name],doc); } } 在这个视图中,我希望所有的值都属于Tenant.Id==1和User.Name,其中包含“a” 我可以通过收集属于特定租户Id的所有租户数据,在我的C#中搜索此信息。 但我有每个租户数百万的数据。所以需要在服务器端本身检查这一点。 这是
function (doc, meta)
{
if(doc.Tenant)
{
emit([doc.Tenant.Id,doc.Tenant.User.Name],doc);
}
}
在这个视图中,我希望所有的值都属于Tenant.Id==1和User.Name,其中包含“a”
我可以通过收集属于特定租户Id的所有租户数据,在我的C#中搜索此信息。
但我有每个租户数百万的数据。所以需要在服务器端本身检查这一点。
这是可以搜索的。我猜您希望能够更改在字符串中搜索的字母,不幸的是,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);
}
}
}
如果你想动态地改变你想在名字中搜索哪个字母甚至子串,那么你就要考虑像弹性搜索这样的东西(非常适合文本搜索)。Couchbase有一个elasticsearch传输插件,可以自动复制到您的elasticsearch节点
下面是关于ES和Couchbase的演示 ES插件的安装和入门文档 还有一个很酷的教程,详细介绍了如何在ES数据上添加GUI,以便于过滤id和字母是否发生变化?也就是说,有时您希望搜索id 2,而名称包含F?