protected override QueryResult GetQueryResult() { session.IncrementRequestCount(); var sp = Stopwatch.StartNew(); while (true) { Trace.WriteLine(string.Format("Executing query '{0}' on index '{1}' in '{2}'", query, indexName, session.StoreIdentifier)); var result = databaseCommands.Query(indexName, new IndexQuery { Query = query, PageSize = pageSize, Start = start, Cutoff = cutoff, SortedFields = orderByFields.Select(x => new SortedField(x)).ToArray(), FieldsToFetch = projectionFields }); if (waitForNonStaleResults && result.IsStale) { if (sp.Elapsed > timeout) { sp.Stop(); throw new TimeoutException(string.Format("Waited for {0:#,#}ms for the query to return non stale result.", sp.ElapsedMilliseconds)); } Trace.WriteLine( string.Format("Stale query results on non stable query '{0}' on index '{1}' in '{2}', query will be retired", query, indexName, session.StoreIdentifier)); Thread.Sleep(100); continue; } Trace.WriteLine(string.Format("Query returned {0}/{1} results", result.Results.Length, result.TotalResults)); return(result); } }
/// <summary> /// Gets the query result. /// </summary> /// <returns></returns> protected virtual QueryResult GetQueryResult() { foreach (var documentQueryListener in queryListeners) { documentQueryListener.BeforeQueryExecuted(this); } theSession.IncrementRequestCount(); var sp = Stopwatch.StartNew(); while (true) { var query = theQueryText.ToString(); Debug.WriteLine(string.Format("Executing query '{0}' on index '{1}' in '{2}'", query, indexName, theSession.StoreIdentifier)); var indexQuery = GenerateIndexQuery(query); AddOperationHeaders(theDatabaseCommands.OperationsHeaders.Add); var result = theDatabaseCommands.Query(indexName, indexQuery, includes.ToArray()); if (theWaitForNonStaleResults && result.IsStale) { if (sp.Elapsed > timeout) { sp.Stop(); throw new TimeoutException( string.Format("Waited for {0:#,#}ms for the query to return non stale result.", sp.ElapsedMilliseconds)); } Debug.WriteLine( string.Format( "Stale query results on non stable query '{0}' on index '{1}' in '{2}', query will be retried", query, indexName, theSession.StoreIdentifier)); Thread.Sleep(100); continue; } Debug.WriteLine(string.Format("Query returned {0}/{1} results", result.Results.Count, result.TotalResults)); return(result); } }
public object ExecuteEmbedded(IDatabaseCommands commands) { return(commands.Query(queryOperation.IndexName, queryOperation.IndexQuery, includes.ToArray())); }
public Task <QueryResult> QueryAsync(string index, IndexQuery query, string[] includes, bool metadataOnly = false) { return(new CompletedTask <QueryResult>(databaseCommands.Query(index, query, includes, metadataOnly))); }