public static AggregationDescriptor <T> SortedTopHits <T>(this AggregationDescriptor <T> agg, int size, Expression <Func <T, object> > fieldSort, SortType sorttype, params Expression <Func <T, object> >[] fieldGetter) where T : class { var aggName = sorttype + fieldSort.GetAggName(AggType.TopHits); var sortFieldDescriptor = new SortFieldDescriptor <T>(); sortFieldDescriptor = sortFieldDescriptor.OnField(fieldSort); if (sorttype == SortType.Ascending) { sortFieldDescriptor = sortFieldDescriptor.Ascending(); } else { sortFieldDescriptor = sortFieldDescriptor.Descending(); } return(agg.TopHits(aggName, x => x.Size(size).Source(i => i.Include(fieldGetter)).Sort(s => sortFieldDescriptor))); }
public static AggregationDescriptor <T> TopHits <T>(this AggregationDescriptor <T> agg, int size, params Expression <Func <T, object> >[] fieldGetter) where T : class { var aggName = AggType.TopHits.ToString(); return(agg.TopHits(aggName, x => x.Size(size).Source(i => i.Include(fieldGetter)))); }