Beispiel #1
0
        public static IDictionary <String, KeyItem> GetDictionary <T>(this BucketAggregationBase aggs, Expression <Func <T, Object> > fieldGetter)
        {
            var aggName    = fieldGetter.GetAggName(AggType.GroupBy);
            var itemsTerms = aggs.Terms(aggName);

            return(itemsTerms.Items.ToDictionary(x => x.Key));
        }
Beispiel #2
0
        public static IEnumerable <KeyItem> GetGroupBy <T>(this BucketAggregationBase aggs, Expression <Func <T, Object> > fieldGetter)
        {
            var aggName    = fieldGetter.GetAggName(AggType.GroupBy);
            var itemsTerms = aggs.Terms(aggName);

            return(itemsTerms.Items);
        }
        private BucketAggregationBase GetParentContainer(IQueryNode node, IQueryVisitorContext context)
        {
            BucketAggregationBase container = null;
            var currentNode = node;

            while (container == null && currentNode != null)
            {
                IQueryNode n = currentNode;
                container = n.GetAggregation(() => {
                    var result = n.GetDefaultAggregation(context);
                    if (result != null)
                    {
                        n.SetAggregation(result);
                    }

                    return(result);
                }) as BucketAggregationBase;

                if (currentNode.Parent != null)
                {
                    currentNode = currentNode.Parent;
                }
                else
                {
                    break;
                }
            }

            if (container == null)
            {
                container = new ChildrenAggregation(null, null);
                currentNode.SetAggregation(container);
            }

            return(container);
        }
Beispiel #4
0
        public static IEnumerable <KeyItem> GetGroupBy(this BucketAggregationBase aggs, string key)
        {
            var itemsTerms = aggs.Terms(key);

            return(itemsTerms.Items);
        }