nur eine andere Frage tagcloud
-
12-10-2019 - |
Frage
ich habe einen Akt:
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 ist einfach:
public class Tag
{
public string Name { get; set; }
public string LfmUrl { get; set; }
}
Ich will die DB in der Lage sein abzufragen und eine Liste von TagCount zurück, die den Namen des Tags zeigt und die Anzahl der es angezeigt wird.
Bisher habe ich dies:
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);
}
}
Welche glücklich gibt nichts aus. Ich weiß, es gibt Tausende von Akten mit jeweils zumindest ein paar Tags. Irgendwelche Ideen?
Ich möchte im Idealfall in einer Liste von Akt-IDs übergeben diese gegen abzufragen. Also, da eine Liste von Handlungen, was sind die Tags und wie oft tut jeder auftreten?
Lösung
Wir hatten gerade alle TagName ändern Namen übereinstimmen und es kartiert schön
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow