Take the community feedback survey now.
AI OnAI Off
Take the community feedback survey now.
Why don't you make the CreatorUserId a facet? Then you'll get the results back faceted on that, with the counts. You can still combine with a pre and/or post filter.
Dan's suggestion works a treat. I had to make my property a string but that wasn't an issue. Here's the solution:
public class TopicIndex
{
public string CreatorUserId { get; set; }
public int ItemCategory { get; set; }
}
var docs = _searchClient.Search<TopicIndex>()
.Filter(x => x.ItemCategory.Match(1))
.TermsFacetFor(x => x.CreatorUserId)
.Take(0)
.GetResult();
var topAuthors = docs.TermsFacetFor(x => x.CreatorUserId)
.Terms
.OrderByDescending(t => t.Count)
.Select(t => new
{
UserId = t.Term,
Count = t.Count
});
I'm trying to sort some results from EPiServer Find using the count of a grouping like function. However, I can't see how I would achieve this with the Find API's. At the moment I'm having to get documents back from Find (filtered by a certain value) and then do the grouping and sorting in memory with Linq to objects. Below is a summary of my indexed type and code:
Any ideas how I could achieve this just using Find?
Thanks.