2010-12-23 57 views
0

我有一個行爲:只是另一個tagcloud問題

public class Act 
{ 
    public Act() 
    { 
     this.Tags = new List<Tag>(); 
    } 

    public string Id {get; set;} 

    public string Name { get; set; } 

    public IList<Tag> Tags { get; set; } 

} 

標籤只是:

public class Tag 
{ 
    public string Name { get; set; } 

    public string LfmUrl { get; set; } 
} 

我希望能夠查詢數據庫並獲得TagCount列表回其顯示名稱標籤的數量和出現的次數。

到目前爲止,我有這樣的:

public class Tags_ByTagCloud : AbstractIndexCreationTask 
{ 
    public override IndexDefinition CreateIndexDefinition() 
    { 
     return new IndexDefinition<Act, TagAndCount> 
        { 
         Map = docs => from doc in docs 
            from tag in doc.Tags 
            select new 
               { 
                Name = tag.Name, 
                Count = 1 
               }, 
         Reduce = results => from result in results 
              group result by result.TagName 
              into g 
              select new 
                 { 
                  Name = g.Key, 
                  Count = g.Sum(x => x.Count) 
                 }, 
         SortOptions = {{x => x.Count, SortOptions.Int}} 
        }.ToIndexDefinition(DocumentStore.Conventions); 
    } 
} 

哪個愉快輸出什麼。我知道有成千上萬的行爲,每個行爲都至少有幾個標籤。有任何想法嗎?

我最好想通過一個act id列表來查詢這個。因此,給定一個行爲列表,標籤是什麼,以及每次發生多少次?

+0

我想這是C#,不是C. – EboMike 2010-12-23 20:00:42

回答

0

就不得不改變所有的標記名相匹配的名稱和它很好地映射