public QueryRunResult Run(QueryPlanFull planFull, Page page) { const int maxTryCount = 5; int tryCounter = maxTryCount; for (;;) { try { var s = Stopwatch.StartNew(); _logger.InfoFormat("Try to execute query '{0}' ", planFull.Query.Full); QueryRunResult result = DoRun(planFull, page); _logger.InfoFormat("Query was executed successfully '{0}' in {1} ms", planFull.Query.Full, s.Elapsed.TotalMilliseconds); return(result); } catch (DocumentIndexConcurrentAccessException) { _logger.InfoFormat("Try to execute query '{0}' failed", planFull.Query.Full); if (--tryCounter == 0) { _logger.InfoFormat("Cannot execute query '{0}' after {1} tries", planFull.Query.Full, maxTryCount); throw; } } } }
public QueryResult Run(QueryData data) { if (string.IsNullOrEmpty(data.Query)) { return(new QueryResult()); } var parsedQuery = _queryParser.Parse(data.Query); QueryPlanFull queryPlanFull = _queryPlanBuilder.Build(data, parsedQuery); QueryRunResult result = _queryEngine.Run(queryPlanFull, Map(data.Page)); return(CreateResult(result, data)); }
public QueryResult Run(QueryData data) { if (string.IsNullOrEmpty(data.Query)) { return(new QueryResult()); } string parsedQuery = _queryParser.Parse(data.Query); QueryPlan queryPlan = _queryPlanBuilder.Build(data, parsedQuery); QueryRunResult result = _queryPlanExecutor.Run(queryPlan, Map(data.Page)); return(CreateResult(result, data)); }
private QueryResult CreateResult(QueryRunResult queryResult, QueryData queryData) { QueryEntityTypeProvider.SearchResult result = _queryResultFactory.CreateQueryResult(queryResult.Entities); var searchResult = new QueryResult { GeneralIds = result.GeneralIds.ToArray(), AssignableIds = result.AssignableIds.ToArray(), TestCaseIds = result.TestCaseIds.ToArray(), CommentIds = queryResult.Comments.Select(i => i.FileName).ToArray(), QueryString = queryData.Query, Total = queryResult.EntitiesTotalCount + queryResult.CommentsTotalCount, LastIndexedEntityId = queryResult.LastIndexedEntityId, LastIndexedCommentId = queryResult.LastIndexedCommentId }; return searchResult; }
private QueryResult CreateResult(QueryRunResult queryResult, QueryData queryData) { QueryEntityTypeProvider.SearchResult result = _queryResultFactory.CreateQueryResult(queryResult.Entities); var searchResult = new QueryResult { GeneralIds = result.GeneralIds.ToArray(), AssignableIds = result.AssignableIds.ToArray(), TestCaseIds = result.TestCaseIds.ToArray(), CommentIds = queryResult.Comments.Select(i => i.FileName).ToArray(), QueryString = queryData.Query, Total = queryResult.EntitiesTotalCount + queryResult.CommentsTotalCount, LastIndexedEntityId = queryResult.LastIndexedEntityId, LastIndexedCommentId = queryResult.LastIndexedCommentId }; return(searchResult); }