private TopDocs ExecuteQuery(IndexSearcher indexSearcher, Query luceneQuery, int start, int pageSize,
IndexQuery indexQuery)
{
Filter filter = indexQuery.GetFilter();
Sort sort = indexQuery.GetSort(filter, parent.indexDefinition);
if (pageSize == Int32.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);
}
}