public void HandleResponses(GetResponse[] responses, ShardStrategy shardStrategy)
        {
            var count = responses.Count(x => x.Status == 404);

            if (count != 0)
            {
                throw new InvalidOperationException("There is no index named: " + queryOperation.IndexName + " in " + count + " shards");
            }

            var list = responses
                       .Select(response => SerializationHelper.ToQueryResult((RavenJObject)response.Result, response.GetEtagHeader(), response.Headers[Constants.Headers.RequestTime], -1))
                       .ToList();

            var queryResult = shardStrategy.MergeQueryResults(queryOperation.IndexQuery, list);

            queryOperation.EnsureIsAcceptable(queryResult);

            if (afterQueryExecuted != null)
            {
                afterQueryExecuted(queryResult);
            }
            Result      = queryOperation.Complete <T>();
            QueryResult = queryResult;
        }
Beispiel #2
0
        private Dictionary <string, SuggestionResult> ProcessResults(QueryResult queryResult, DocumentConventions conventions)
        {
            InvokeAfterQueryExecuted(queryResult);

            var results = new Dictionary <string, SuggestionResult>();

            foreach (BlittableJsonReaderObject result in queryResult.Results)
            {
                var suggestionResult = (SuggestionResult)EntityToBlittable.ConvertToEntity(typeof(SuggestionResult), "suggestion/result", result, conventions);
                results[suggestionResult.Name] = suggestionResult;
            }

            QueryOperation.EnsureIsAcceptable(queryResult, _query.WaitForNonStaleResults, _duration, _session);

            return(results);
        }
Beispiel #3
0
        private Dictionary <string, FacetResult> ProcessResults(QueryResult queryResult)
        {
            InvokeAfterQueryExecuted(queryResult);

            var results = new Dictionary <string, FacetResult>();

            foreach (BlittableJsonReaderObject result in queryResult.Results)
            {
                var facetResult = DocumentConventions.Default.Serialization.DefaultConverter.FromBlittable <FacetResult>(result, "facet/result");
                results[facetResult.Name] = facetResult;
            }

            QueryOperation.EnsureIsAcceptable(queryResult, _query.WaitForNonStaleResults, _duration, _session);

            return(results);
        }