Я создал следующий индекс:
public class LawDisadvantagesForListIndex : AbstractIndexCreationTask<LawDisadvantage, LawDisadvantagesForListIndex.IndexResult>
{
public class IndexResult
{
public string Id { get; set; }
public long Rating { get; set; }
}
public class LawDisadvantageForList
{
public string Id { get; set; }
public long Rating { get; set; }
public long CommentsCount { get; set; }
}
public LawDisadvantagesForListIndex()
{
Map = lawDisadvantages => from lawDisadvantage in lawDisadvantages
from vote in lawDisadvantage.Votes
select new {Id = lawDisadvantage.Id, Rating = vote.Value};
Reduce = (lawDisadvantages => from lawDisadvantage in lawDisadvantages
group lawDisadvantage by lawDisadvantage.Id
into agg
select new
{
Id = agg.Key,
Rating = agg.Sum(x => x.Rating)
});
TransformResults = (database, indexResults) => from indexResult in indexResults
let lawDisadvantage = database.Load<LawDisadvantage>(indexResult.Id)
select new
{
Id = lawDisadvantage.Id,
Rating = indexResult.Rating,
CommentsCount = lawDisadvantage.Comments.Count
};
}
}
Поэтому я беру документ LawDisadvantage, обрабатываю его с помощью MapReduce, а затем добавляю некоторые дополнительные поля путем преобразования.Но в результате я получаю сообщение об исключении "System.InvalidOperationException: функция результатов преобразования не выполнена. Doc '', Error: Невозможно преобразовать тип 'string' в 'long'".Источником исключения является предложение "indexResult.Rating".
Кстати, этот вопрос выглядит актуальным.
Обновление. Я обновился допоследняя нестабильная версия - исправлено