solo un'altra domanda tagcloud
-
12-10-2019 - |
Domanda
Ho un atto:
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; }
}
Tag è solo:
public class Tag
{
public string Name { get; set; }
public string LfmUrl { get; set; }
}
Voglio essere in grado di interrogare il DB e ottenere un elenco di TagCount posteriore che mostra il nome del tag e il numero di volte in cui appare.
Finora ho questo:
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);
}
}
Quali felicemente uscite nulla. So che ci sono migliaia di atti ciascuno con almeno un paio di tag. Tutte le idee?
I idealmente vuole passare in un elenco di ID atto di interrogare questo contro. Quindi, data una lista di atti, quali sono i tag e quante volte lo fa ogni accadere?
Soluzione
Proprio dovuto cambiare tutto TagName per abbinare Nome e mappato ben
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow