private CacheQuery<Person> buildPaginationQuery(int offset, int pageSize, Sort sort) { CacheQuery<Person> clusteredQuery = Search.getSearchManager(cacheAMachine1) .getQuery(new MatchAllDocsQuery(), IndexedQueryMode.BROADCAST); clusteredQuery.firstResult(offset); clusteredQuery.maxResults(pageSize); if (sort != null) { clusteredQuery.sort(sort); } return clusteredQuery; }
cacheQuery = cacheQuery.maxResults(request.getMaxResult()); if (parsingResult.getSort() != null) cacheQuery = cacheQuery.sort(parsingResult.getSort()); if (request.getStartOffset() > 0) cacheQuery = cacheQuery.firstResult(request.getStartOffset().intValue());
public void testPagination() { cacheQuery.firstResult(2); cacheQuery.maxResults(1); // applying sort SortField sortField = new SortField("age", Type.INT); Sort sort = new Sort(sortField); cacheQuery.sort(sort); List<Person> results = cacheQuery.list(); assertEquals(1, results.size()); assertEquals(10, cacheQuery.getResultSize()); Person result = results.get(0); assertEquals(12, result.getAge()); StaticTestingErrorHandler.assertAllGood(cacheAMachine1, cacheAMachine2); }
public void testList() { // applying sort SortField sortField = new SortField("age", Type.INT); Sort sort = new Sort(sortField); cacheQuery.sort(sort); List<Person> results = cacheQuery.list(); assertEquals(10, cacheQuery.getResultSize()); int previousAge = 0; for (Person person : results) { assert person.getAge() > previousAge; previousAge = person.getAge(); } StaticTestingErrorHandler.assertAllGood(cacheAMachine1, cacheAMachine2); }
cacheQuery = cacheQuery.sort(luceneParsingResult.getSort());
public void testLazyOrdered() { // applying sort SortField sortField = new SortField("age", Type.INT); Sort sort = new Sort(sortField); cacheQuery.sort(sort); for (int i = 0; i < 2; i++) { try (ResultIterator<Person> iterator = cacheQuery.iterator(new FetchOptions().fetchMode(FetchOptions.FetchMode.LAZY))) { assert cacheQuery.getResultSize() == 10 : cacheQuery.getResultSize(); int previousAge = 0; while (iterator.hasNext()) { Person person = iterator.next(); assert person.getAge() > previousAge; previousAge = person.getAge(); } } } StaticTestingErrorHandler.assertAllGood(cacheAMachine1, cacheAMachine2); }
public void testEagerOrdered() { // applying sort SortField sortField = new SortField("age", Type.INT); Sort sort = new Sort(sortField); cacheQuery.sort(sort); try (ResultIterator<Person> iterator = cacheQuery.iterator(new FetchOptions().fetchMode(FetchOptions.FetchMode.EAGER))) { assertEquals(10, cacheQuery.getResultSize()); int previousAge = 0; while (iterator.hasNext()) { Person person = iterator.next(); assert person.getAge() > previousAge; previousAge = person.getAge(); } } StaticTestingErrorHandler.assertAllGood(cacheAMachine1, cacheAMachine2); }
/** * Build a Lucene index query. */ protected <E> CacheQuery<E> buildLuceneQuery(IckleParsingResult<TypeMetadata> ickleParsingResult, Map<String, Object> namedParameters, long startOffset, int maxResults) { if (log.isDebugEnabled()) { log.debugf("Building Lucene query for : %s", ickleParsingResult.getQueryString()); } if (!isIndexed) { throw log.cannotRunLuceneQueriesIfNotIndexed(cache.getName()); } LuceneQueryParsingResult luceneParsingResult = transformParsingResult(ickleParsingResult, namedParameters); org.apache.lucene.search.Query luceneQuery = makeTypeQuery(luceneParsingResult.getQuery(), luceneParsingResult.getTargetEntityName()); if (log.isDebugEnabled()) { log.debugf("The resulting Lucene query is : %s", luceneQuery.toString()); } CacheQuery<?> cacheQuery = makeCacheQuery(ickleParsingResult, luceneQuery); if (luceneParsingResult.getSort() != null) { cacheQuery = cacheQuery.sort(luceneParsingResult.getSort()); } if (luceneParsingResult.getProjections() != null) { cacheQuery = cacheQuery.projection(luceneParsingResult.getProjections()); } if (startOffset >= 0) { cacheQuery = cacheQuery.firstResult((int) startOffset); } if (maxResults > 0) { cacheQuery = cacheQuery.maxResults(maxResults); } return (CacheQuery<E>) cacheQuery; }
cacheQuery = cacheQuery.sort(luceneParsingResult.getSort());