private TopDocs ExecuteQuery(IndexSearcher indexSearcher, Query luceneQuery, int start, int pageSize, IndexQuery indexQuery) { Filter filter = indexQuery.GetFilter(); Sort sort = indexQuery.GetSort(filter, indexDefinition); if (pageSize == int.MaxValue) // we want all docs { var gatherAllCollector = new GatherAllCollector(); indexSearcher.Search(luceneQuery, filter, gatherAllCollector); return(gatherAllCollector.ToTopDocs()); } // NOTE: We get Start + Pagesize results back so we have something to page on if (sort != null) { return(indexSearcher.Search(luceneQuery, filter, pageSize + start, sort)); } return(indexSearcher.Search(luceneQuery, filter, pageSize + start)); }
private TopDocs ExecuteQuery(IndexSearcher indexSearcher, Query luceneQuery, int start, int pageSize, IndexQuery indexQuery) { var sort = indexQuery.GetSort(parent.indexDefinition); if (pageSize == Int32.MaxValue) // we want all docs { var gatherAllCollector = new GatherAllCollector(); indexSearcher.Search(luceneQuery, gatherAllCollector); return(gatherAllCollector.ToTopDocs()); } var minPageSize = Math.Max(pageSize + start, 1); // NOTE: We get Start + Pagesize results back so we have something to page on if (sort != null) { var ret = indexSearcher.Search(luceneQuery, null, minPageSize, sort); return(ret); } return(indexSearcher.Search(luceneQuery, null, minPageSize)); }