Esempio n. 1
0
        /// <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);
        }
Esempio n. 5
0
 /// <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));
 }