2011-12-20 65 views
3

有一段代码,如:使用地图,减少订货清单

public class Idea 
{ 

    (...) 
    public IList<IdeaSupporter> Supporters { get; set; } 

} 

public class IdeaSupporter 
{ 
    (...) 
    public int Tokens { get; set; } 
} 

尝试订购的支持者令牌的想法。我知道我必须使用map-reduce,但我很新。任何人都知道如何使用map-reduce在这种情况下正确地看起来?

+0

'Supporters.Sort()'有什么问题?你的名单中是否有数十万甚至数百万的支持者? – 2011-12-20 16:17:15

+0

http://stackoverflow.com/questions/3624384/sorting-large-data-using-mapreduce-hadoop – 2011-12-20 16:55:57

回答

0

的指数应该是这样的:

from idea in docs.Ideas 
select new 
{ 
    SumOfSupportersTokens = idea.Supporters.Sum(x=>x.Tokens) 
} 

请注意,这不是一个地图/减少指数,它是输出和一个简单的地图索引。 然后你可以在那里订购。

+0

谢谢!还有两个简短的问题:1)我应该在文档级别添加索引,而不是在代码中,对不对? 2)如何在代码中使用该索引:'list.OrderByDescending(????)' – 2011-12-21 09:15:09

+0

该索引不能保存 - 发生错误:错误CS1977:无法将lambda表达式用作动态调度操作的参数首先将其转换为委托或表达式树类型'任何想法应该如何? – 2011-12-21 10:51:39