【问题标题】:just another tagcloud question只是另一个标签云问题
【发布时间】:2011-05-30 03:39:11
【问题描述】:

我有一个行为:

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

很高兴什么都不输出。我知道有成千上万的行为,每个行为至少有几个标签。有什么想法吗?

理想情况下,我想传入一个行为 ID 列表来查询它。所以,给定一个行为列表,标签是什么,做了多少次 每次都发生?

【问题讨论】:

  • 对不起 - 在意识到之前点击提交按钮 - 好电话:)
  • 我们不知道什么是文档、结果或 ToIndexDefinition()。你有没有分别查看过 Map 和 Reduce 的查询结果?我这里没有足够的信息。
  • 这是 RavenDb 标准的东西——你知道 ravendb 是什么吗? [烦人] [grrr] [除非你知道你在说什么,否则不要插话]
  • 只需更改所有 TagName 以匹配 Name 并且它映射得很好。像魅力一样工作

标签: c# mapreduce ravendb document-database


【解决方案1】:

只需更改所有 TagName 以匹配 Name 并且它映射得很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多