我有一个看起来像这样的地图/降低索引(如服务器上定义)。
地图:
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);
但是,当有很多结果(如工作室所示)的总属性大于1时,我没有得到任何结果我过滤了除汇总属性(请求Bytes,ResponseBytes和TotalRequests)以外的任何其他属性。
有人可以帮助我理解我做错了什么吗?
好的,我想出了。无论出于何种原因,我都需要像这样施放总和()的结果。这必须与发送到Raven Server的动态汇编有关。
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 = (Int32)g.Sum(r => r.RequestBytes),
ResponseBytes = (Int32)g.Sum(r => r.ResponseBytes),
TotalRequests = (Int32)g.Sum(r => r.TotalRequests)
}