Пример #1
0
        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));
        }
Пример #2
0
            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));
            }