我正在努力用 ravendb 创建一个简单的索引。
给出了两个文档集合:
用户(34000 个文档)和 BlogEntries(150 万个文档)
1) 如何创建一个索引来显示每个用户的博客条目数?
集合关系如下:
User.LastName + "," + User.FirstName = Blog.CreatedBy
重要的是 BlogEntries 包含与用户集合无关的旧条目。我想过滤掉这些条目,这样它们就不会出现在索引中。这就是为什么我需要这里的用户集合。
样本数据:
User Collection:
User U1
User U2
BlogEntry Collection:
BlogEntry B1 -> U1
BlogEntry B2 -> U1
BlogEntry B3 -> U2
BlogEntry B4 -> XYZ1
BlogEntry B5 -> XYZ2
BlogEntry B6 -> U1
我想过滤掉 B4 和 B5 条目,因为它们与用户集合中的用户无关。
2)我必须为此使用多图索引吗?
3)我已经通过管理工作室尝试了以下,但索引不起作用。似乎我不能在一个地图块中使用两个文档集合。
地图:
from user in docs.Users
from blog in docs.Blogs
where blog.CreatedBy = user.LastName + "," + user.FirstName
select new { UserName = user.LastName ..., Count = 1 }
减少:
from result in results group by result.UserName
into g
select new { User = g.Key, g.Sum( x => x.Count) }
谢谢,马吕斯