public Task <QueryContainer> BuildQueryAsync(IQueryNode query, IElasticQueryVisitorContext context = null)
        {
            if (context == null)
            {
                context = new ElasticQueryVisitorContext();
            }

            var q = query.GetQuery() ?? new MatchAllQuery();

            if (context?.UseScoring == false)
            {
                q = new BoolQuery {
                    Filter = new QueryContainer[] { q }
                };
            }

            return(Task.FromResult <QueryContainer>(q));
        }