/// <summary>根据聚合条件获取统计信息</summary> public virtual async Task <SearchStatisticsResult> StatisticsAsync(SearchStatisticsRequest request) { var provider = new SearchProvider <Metadata>(); SearchGroupRules groups = new SearchGroupRules(); groups.Top = int.MaxValue / 2; groups.Fields = request.Groups; var aggs = provider.BuildAggs(groups); var searchresponse = await _esAccess.PagingQueryAsync(null, null, null, aggs, 0, 0); SearchStatisticsResult result = new SearchStatisticsResult(); var groupResult = new Dictionary <string, Dictionary <string, long?> >(); foreach (var agg in searchresponse.Aggregations) { var aggregates = agg.Value.As <BucketAggregate>().Items; Dictionary <string, long?> dic = new Dictionary <string, long?>(); foreach (var aggregate in aggregates) { var keyedBucket = aggregate as Nest.KeyedBucket <object>; if (keyedBucket != null) { dic.Add(keyedBucket.Key.ToString(), keyedBucket.DocCount); } } groupResult.Add(agg.Key, dic); } result.Groups = groupResult; return(result); }
/// <summary>根据聚合条件获取统计信息</summary> private async Task <SearchStatisticsResult> StatisticsAsyncInternal(HttpClientWrapper client, SearchStatisticsRequest request) { return(await client.PostObjectAsync <SearchStatisticsResult>(GetActionUrl(nameof(Statistics)), request).ConfigureAwait(false)); }
/// <summary>根据聚合条件获取统计信息</summary> public async Task <SearchStatisticsResult> StatisticsAsync(SearchStatisticsRequest request) { var client = InitHttpClient(); return(await StatisticsAsyncInternal(client, request).ConfigureAwait(false)); }
/// <summary>根据聚合条件获取统计信息</summary> public SearchStatisticsResult Statistics(SearchStatisticsRequest request) { var client = InitHttpClient(); return(Task.Run(() => StatisticsAsyncInternal(client, request)).Result); }
/// <summary>根据聚合条件获取统计信息</summary> public virtual SearchStatisticsResult Statistics(SearchStatisticsRequest request) { return(Task.Run(() => StatisticsAsync(request)).Result); }
public async Task <SearchStatisticsResult> Statistics(SearchStatisticsRequest request) { return(await ServiceImpl.StatisticsAsync(request)); }