public SearchResult <T> Search(SearchParameters parameters) { int?start = null; int?rows = null; if (parameters.PageIndex > 0) { start = (parameters.PageIndex - 1) * parameters.PageSize; rows = parameters.PageSize; } var queryOptions = new QueryOptions { FilterQueries = FilterBuilder.BuildFilterQueries(parameters), Rows = rows, Start = start, OrderBy = SortBuilder.GetSelectedSort(parameters), }; try { var matchingResults = _solr.Query(QueryBuilder.BuildQuery(parameters), queryOptions); return(new SearchResult <T> { MatchingResults = matchingResults, TotalResults = matchingResults.NumFound }); } catch (SolrConnectionException exception) { // log exception and return empty result Console.WriteLine($"Url: {exception.Url} Message: {exception.Message}"); return(new SearchResult <T>()); } }