0
쿼리에 대한 인덱스를 만들고 싶습니다.이 항목에 대한 통계와 함께 오디오 항목 목록을 내보기로 돌아가고 싶습니다.이 목록은 TotalDownloads입니다. & TotalPlays. 여기 MultiMap/Reduce - Counts = 0?
내 관련 문서입니다 :Audio
- Id
- ArtistName
- Name
AudioCounter
- AudioId
- Type
- DateTime
여기에 내 현재 지수이다 : 그러나
public class AudioWithCounters : AbstractMultiMapIndexCreationTask<AudioWithCounters.AudioViewModel>
{
public class AudioViewModel
{
public string Id { get; set; }
public string ArtistName { get; set; }
public string Name { get; set; }
public int TotalDownloads { get; set; }
public int TotalPlays { get; set; }
}
public AudioWithCounters()
{
AddMap<Audio>(audios => from audio in audios
select new
{
Id = audio.Id,
ArtistName = audio.ArtistName,
Name = audio.Name,
TotalDownloads = 0,
TotalPlays = 0
});
AddMap<AudioCounter>(counters => from counter in counters
where counter.Type == Core.Enums.Audio.AudioCounterType.Download
select new
{
Id = counter.AudioId,
ArtistName = (string)null,
Name = (string)null,
TotalDownloads = 1,
TotalPlays = 0
});
AddMap<AudioCounter>(counters => from counter in counters
where counter.Type == Core.Enums.Audio.AudioCounterType.Download
select new
{
Id = counter.AudioId,
ArtistName = (string)null,
Name = (string)null,
TotalDownloads = 0,
TotalPlays = 1
});
Reduce = results => from result in results
group result by result.Id
into g
select new
{
Id = g.Key,
ArtistName = g.Select(x => x.ArtistName).Where(x => x != null).First(),
Name = g.Select(x => x.Name).Where(x => x != null).First(),
TotalDownloads = g.Sum(x => x.TotalDownloads),
TotalPlays = g.Sum(x => x.TotalPlays)
};
}
}
, 내 TotalDownloads
& TotalPlays
는 항상 0이 있어야한다하더라도 데이터이다가. 내가 도대체 뭘 잘못하고있는 겁니까?
감사합니다. 그렇게 간단한 수정이라고 생각하지 마십시오. 이걸로 몇 시간 동안 내 머리카락을 꺼내려고 했어! –