1
我有一个map/reduce索引,看起来像这样(在服务器上定义)。RavenDB在Map/Reduce索引中查询聚集属性
地图:
from request in docs.Master_Requests
select new
{
DocumentID = Guid.NewGuid(),
Year = request.Timestamp.Year,
Month = request.Timestamp.Month,
Day = request.Timestamp.Day,
Hour = request.Timestamp.Hour,
Minute = request.Timestamp.Minute,
RequestBytes = request.RequestBytes,
ResponseBytes = request.ResponseBytes,
TotalRequests = 1
}
减少:
from result in results
group result by new { result.Year, result.Month, result.Day, result.Hour, result.Minute }
into g
select new
{
DocumentID = Guid.NewGuid(),
Year = g.Key.Year,
Month = g.Key.Month,
Day = g.Key.Day,
Hour = g.Key.Hour,
Minute = g.Key.Minute,
RequestBytes = g.Sum(r => r.RequestBytes),
ResponseBytes = g.Sum(r => r.ResponseBytes),
TotalRequests = g.Sum(r => r.TotalRequests)
}
我试图在地图上的结果查询/减少指数像这样:
session.Query<UsageAggregate>("RequestAggregateByMinute", true)
.Where(a => a.TotalRequests >= 1);
然而,我如果有很多结果(如演播室中所示),TotalRequests属性大于1,则不会返回结果。我得到结果当我不包含where谓词时,并且在过滤聚合属性(RequestBytes,ResponseBytes和TotalRequests)以外的任何其他属性时也会得到结果。
有人能帮我理解我在做什么错吗?
更多信息。看起来我不能对聚合字段进行范围查询(例如,大于不工作,等于工作)。 –