@Override public CacheQuery<E> maxResults(int maxResults) { hSearchQuery.maxResults(maxResults); return this; }
public void setMaxResults(int maxResults) { this.maxResults = maxResults; if (hsQuery != null) { hsQuery.maxResults(maxResults); } }
@Override public FullTextQuery setMaxResults(int maxResults) { if ( maxResults < 0 ) { throw new IllegalArgumentException( "Negative (" + maxResults + ") parameter passed in to setMaxResults" ); } hSearchQuery.maxResults( maxResults ); this.maxResults = maxResults; return this; }
HSQuery query = queryContext.getExtendedSearchIntegrator().createHSQuery( findById, queryContext.getEntityType().getPojoType() ); List<EntityInfo> entityInfos = query .maxResults( 1 ) .projection( HSQuery.DOCUMENT_ID ) .queryEntityInfos();
HSQuery query = queryContext.getExtendedSearchIntegrator().createHSQuery( findById, queryContext.getEntityType().getPojoType() ); List<EntityInfo> entityInfos = query .maxResults( 1 ) .projection( HSQuery.DOCUMENT_ID ) .queryEntityInfos();
@Override public ResultIterator<E> iterator(FetchOptions fetchOptions) throws SearchException { hSearchQuery.maxResults(getNodeMaxResults()); switch (fetchOptions.getFetchMode()) { case EAGER: { ClusteredQueryCommand command = ClusteredQueryCommand.createEagerIterator(hSearchQuery, cache); HashMap<UUID, ClusteredTopDocs> topDocsResponses = broadcastQuery(command); return new DistributedIterator<>(sort, fetchOptions.getFetchSize(), this.resultSize, maxResults, firstResult, topDocsResponses, cache); } case LAZY: { UUID lazyItId = UUID.randomUUID(); ClusteredQueryCommand command = ClusteredQueryCommand.createLazyIterator(hSearchQuery, cache, lazyItId); HashMap<UUID, ClusteredTopDocs> topDocsResponses = broadcastQuery(command); // Make a sort copy to avoid reversed results return new DistributedLazyIterator<>(sort, fetchOptions.getFetchSize(), this.resultSize, maxResults, firstResult, lazyItId, topDocsResponses, asyncExecutor, cache); } default: throw new IllegalArgumentException("Unknown FetchMode " + fetchOptions.getFetchMode()); } }
@Test public void clear_maxResult() throws Exception { HSQuery hsQuery = queryAll(); helper.assertThat( hsQuery ).matchesExactlyIds( 0, 1, 2 ); hsQuery.maxResults( 2 ); helper.assertThat( hsQuery ).matchesExactlyIds( 0, 1 ); hsQuery.maxResults( 1 ); helper.assertThat( hsQuery ).matchesExactlyIds( 0 ); }
public void initialize(AdvancedCache<?, ?> cache) { if (hsQuery == null) { QueryEngine queryEngine = getQueryEngine(cache); HsQueryRequest hsQueryRequest; if (indexedType != null && sortableFields != null) { IndexedTypeMap<CustomTypeMetadata> metadata = createMetadata(); hsQueryRequest = queryEngine.createHsQuery(queryString, metadata, namedParameters); } else { hsQueryRequest = queryEngine.createHsQuery(queryString, null, namedParameters); } hsQuery = hsQueryRequest.getHsQuery(); sort = hsQueryRequest.getSort(); hsQuery.firstResult(firstResult); hsQuery.maxResults(maxResults); hsQuery.projection(hsQueryRequest.getProjections()); } }
@Benchmark @Threads(20) public void queryBooksByBestRating(QueryEngineHolder eh, Blackhole bh) { SearchIntegrator searchIntegrator = eh.si; Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( BookEntity.class ) .get() .all() .createQuery(); long expectedIndexSize = eh.getExpectedIndexSize(); int maxResults = eh.getMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, BookEntity.class ); hsQuery.sort( new Sort( new SortField( "rating", SortField.Type.FLOAT, true ) ) ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); if ( eh.isQuerySync() && queryResultSize != expectedIndexSize ) { throw new RuntimeException( "Unexpected index size" ); } if ( maxResults != queryEntityInfos.size() ) { throw new RuntimeException( "Unexpected resultset size" ); } bh.consume( queryEntityInfos ); }
@Test public void searchBeforeMaxResultWindow() throws Exception { generateData( 0, DEFAULT_MAX_RESULT_WINDOW + 10 ); Query query = builder().all().createQuery(); List<EntityInfo> results = getQuery( query ) .firstResult( DEFAULT_MAX_RESULT_WINDOW - 5 ).maxResults( 5 ) .queryEntityInfos(); assertEquals( 5, results.size() ); assertEquals( DEFAULT_MAX_RESULT_WINDOW - 5, results.get( 0 ).getId() ); }
@Test(expected = SearchException.class) public void searchBeyondMaxResultWindow() throws Exception { generateData( 0, DEFAULT_MAX_RESULT_WINDOW + 10 ); Query query = builder().all().createQuery(); getQuery( query ) .firstResult( DEFAULT_MAX_RESULT_WINDOW + 1 ).maxResults( 5 ) .queryEntityInfos(); }
@Benchmark @GroupThreads(5) @Group("concurrentReadWriteTest") public void readWriteTestReader(QueryEngineHolder eh, Blackhole bh) { SearchIntegrator searchIntegrator = eh.si; Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( BookEntity.class ) .get() .all() .createQuery(); int maxResults = eh.getMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, BookEntity.class ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); bh.consume( queryEntityInfos ); bh.consume( queryResultSize ); }
@Benchmark @GroupThreads(2 * AbstractBookEntity.TYPE_COUNT) @Group("concurrentReadWriteTest") public void readWriteTestReader(NonStreamWriteEngineHolder eh, NonStreamQueryParams qp, Blackhole bh) { SearchIntegrator searchIntegrator = eh.getSearchIntegrator(); Class<?> entityType = qp.getEntityType(); Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( entityType ) .get() .all() .createQuery(); int maxResults = qp.getQueryMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, entityType ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); bh.consume( queryEntityInfos ); bh.consume( queryResultSize ); }
@Benchmark @Threads(6 * AbstractBookEntity.TYPE_COUNT) public void queryBooksByBestRating(NonStreamWriteEngineHolder eh, NonStreamQueryParams qp, Blackhole bh) { SearchIntegrator searchIntegrator = eh.getSearchIntegrator(); Class<?> entityType = qp.getEntityType(); Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( entityType ) .get() .all() .createQuery(); int maxResults = qp.getQueryMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, entityType ); hsQuery.sort( new Sort( new SortField( "rating", SortField.Type.FLOAT, true ) ) ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); bh.consume( queryResultSize ); bh.consume( queryEntityInfos ); }