0

私には行為があります:

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; }
}

DB にクエリを実行して、タグの名前と表示回数を示す 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);
    }
}

喜んで何も出力しません。それぞれに少なくともいくつかのタグが付いた何千ものアクトがあることを私は知っています。何か案は?

理想的には、これに対してクエリを実行する行為 ID のリストを渡したいと考えています。行為のリストが与えられた場合、タグは何で、それぞれが何回出現するのでしょうか?

4

1 に答える 1

0

すべての TagName を Name と一致するように変更するだけで、適切にマッピングされました

于 2011-01-22T08:45:11.740 に答える