internal static LuceneQuery GetNextPageQuery(ILuceneQueryResult queryResult) { return(NextPageQueries.GetOrAdd( queryResult, r => { if (queryResult.Count == queryResult.TotalCount || queryResult.Count == 0) { return null; } else { var nextPageQuery = queryResult.Query.Clone(); nextPageQuery.Skip = queryResult.Skip + queryResult.Count; nextPageQuery.Limit = queryResult.Limit; return nextPageQuery; } })); }
/// <summary>Converts untyped query result ot typed one.</summary> public static ILuceneQueryResult <T> OfType <T>(this ILuceneQueryResult result, Func <IEnumerable <LuceneResultRow>, IEnumerable <T> > rowConvertor) { return(new LuceneQueryResult <T>( result.Query, result.Rows, result.Count, result.TotalCount, result.Offset, result.FetchDuration, result.SearchDuration, result.Limit, result.Offset ?? 0, rowConvertor)); }