public void testPaginatedIckleQuery() { SearchManager sm = Search.getSearchManager(cacheAMachine1); CacheQuery<Person> q = sm.getQuery(String.format("FROM %s p order by p.age", Person.class.getName()), IndexedQueryMode.BROADCAST, Person.class); q.firstResult(5); q.maxResults(10); List<Person> results = q.list(); assertEquals(10, results.size()); assertEquals("name5", results.iterator().next().getName()); assertEquals("name14", results.get(9).getName()); }
@Test(expectedExceptions = UnsupportedOperationException.class) public void testIteratorRemove() { cacheQuery.maxResults(1); try (ResultIterator<Person> iterator = cacheQuery.iterator(new FetchOptions().fetchMode(FetchOptions.FetchMode.EAGER))) { assert iterator.hasNext(); iterator.remove(); } StaticTestingErrorHandler.assertAllGood(cacheAMachine1, cacheAMachine2); }
cacheQuery = cacheQuery.maxResults(request.getMaxResult()); if (parsingResult.getSort() != null) cacheQuery = cacheQuery.sort(parsingResult.getSort());
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; }
@Test(expectedExceptions = NoSuchElementException.class) public void testIteratorNextOutOfBounds() { cacheQuery.maxResults(1); try (ResultIterator<Person> iterator = cacheQuery.iterator(new FetchOptions().fetchMode(FetchOptions.FetchMode.EAGER))) { assert iterator.hasNext(); iterator.next(); assert !iterator.hasNext(); iterator.next(); } StaticTestingErrorHandler.assertAllGood(cacheAMachine1, cacheAMachine2); }
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); }
/** * 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.maxResults(maxResults);
public void testMaxResults() throws ParseException { loadTestingData(); queryParser = createQueryParser("blurb"); Query luceneQuery = queryParser.parse("eats"); CacheQuery<?> cacheQuery = Search.getSearchManager(cache).getQuery(luceneQuery) .maxResults(1); assertEquals(3, cacheQuery.getResultSize()); // NOTE: getResultSize() ignores pagination (maxResults, firstResult) assertEquals(1, cacheQuery.list().size()); ResultIterator<?> eagerIterator = cacheQuery.iterator(new FetchOptions().fetchMode(FetchOptions.FetchMode.EAGER)); try { assertEquals(1, countElements(eagerIterator)); } finally { eagerIterator.close(); } ResultIterator<?> lazyIterator = cacheQuery.iterator(new FetchOptions().fetchMode(FetchOptions.FetchMode.LAZY)); try { assertEquals(1, countElements(lazyIterator)); } finally { lazyIterator.close(); } ResultIterator<?> defaultIterator = cacheQuery.iterator(); try { assertEquals(1, countElements(defaultIterator)); } finally { defaultIterator.close(); } StaticTestingErrorHandler.assertAllGood(cache); }