public IEnumerable <BlittableJsonReaderObject> IndexEntries(IndexQueryServerSide query, Reference <int> totalResults, DocumentsOperationContext documentsContext, Func <string, SpatialField> getSpatialField, CancellationToken token) { var docsToGet = GetPageSize(_searcher, query.PageSize); var position = query.Start; var luceneQuery = GetLuceneQuery(documentsContext, query.Metadata, query.QueryParameters, _analyzer, _queryBuilderFactories); using (GetSort(query, _index, getSpatialField, documentsContext, out var sort)) { var search = ExecuteQuery(luceneQuery, query.Start, docsToGet, sort); var termsDocs = IndexedTerms.ReadAllEntriesFromIndex(_searcher.IndexReader, documentsContext, _state); totalResults.Value = search.TotalHits; for (var index = position; index < search.ScoreDocs.Length; index++) { token.ThrowIfCancellationRequested(); var scoreDoc = search.ScoreDocs[index]; var document = termsDocs[scoreDoc.Doc]; yield return(document); } } }
public IEnumerable <BlittableJsonReaderObject> IndexEntries(IndexQueryServerSide query, Reference <int> totalResults, DocumentsOperationContext documentsContext, CancellationToken token) { var docsToGet = query.PageSize; var position = query.Start; var luceneQuery = GetLuceneQuery(query.Query, query.DefaultOperator, query.DefaultField, _analyzer); var sort = GetSort(query.SortedFields); var search = ExecuteQuery(luceneQuery, query.Start, docsToGet, sort); var termsDocs = IndexedTerms.ReadAllEntriesFromIndex(_searcher.IndexReader, documentsContext); totalResults.Value = search.TotalHits; for (var index = position; index < search.ScoreDocs.Length; index++) { token.ThrowIfCancellationRequested(); var scoreDoc = search.ScoreDocs[index]; var document = termsDocs[scoreDoc.Doc]; yield return(document); } }