private void applyPartialResults(FullTextQuery fullTextQuery, Long firstResult, Long maxResults) { if (firstResult != null) { fullTextQuery.setFirstResult(firstResult.intValue()); } if (maxResults != null) { fullTextQuery.setMaxResults(maxResults.intValue()); } } }
fullTextQuery.setMaxResults(20);
@Override @SuppressWarnings("unchecked") public List<Object> search(final SearchQueryBuilder query, final int firstResult, final int maxResults, final Class<?> indexClass) { List<Object> result = new ArrayList<Object>(); final FullTextQuery hibernateQuery = createFullTextQuery(query, indexClass); if (hibernateQuery != null) { if (firstResult >= 0) { hibernateQuery.setFirstResult(firstResult); hibernateQuery.setMaxResults(maxResults); } result = hibernateQuery.list(); } return result; }
@SuppressWarnings("unchecked") @Override public List<T> findMixedByAttributesPaginated(Map<String, String> eqSentenceOnField, Map<String, String> eqMustSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindMixedByAttribute(eqSentenceOnField, eqMustSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findExactByAttributesPaginated(Map<String, String> eqSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindExactByAttribute(eqSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findMultiFieldSameAttributesAndExactByAttributesPaginated( Map<String, Set<String>> attributeForMultipleFieldsMap, Map<String, String> eqSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindMultiFieldSameAttributesAndExactByAttributes(attributeForMultipleFieldsMap, eqSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") public List<T> findSetOfMultiFieldSameAttributesAndSetOfExactByAttributesPaginated(Set<Map<String, Set<String>>> setAttributeForMultipleFieldsMaps, Set<Map<String, String>> setEqSentenceOnFields, int index, int paginationSize){ FullTextQuery fullTextQuery = createFullTextQueryForfindSetOfMultiFieldSameAttributesAndSetOfExactByAttributes(setAttributeForMultipleFieldsMaps, setEqSentenceOnFields); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findStartingUsingWildcardAndExactByAttributesPaginated(Map<String, String> startSentenceOnField, Map<String, String> eqSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindStartingUsingWildcardAndExactByAttributes(startSentenceOnField, eqSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findNotExactByAttributesPaginated(Map<String, String> eqSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindNotExactByAttribute(eqSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findNotExactByAttributesWKeywordsPaginated(Map<String, String> eqSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindNotExactByAttributeWKeywords(eqSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findMixedByAttributesWKeywordsPaginated(Map<String, String> eqSentenceOnField, Map<String, String> eqMustSentenceOnField, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindMixedByAttributeWKeywords(eqSentenceOnField, eqMustSentenceOnField); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findSetOfExactByAttributesPaginated(Set<Map<String, String>> setEqSentenceOnFields, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindSetOfExactByAttributes(setEqSentenceOnFields); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@SuppressWarnings("unchecked") @Override public List<T> findSetOfStartingUsingWildcardAndSetOfExactByAttributesPaginated( Set<Map<String, String>> setOfStartSentenceOnFields, Set<Map<String, String>> setOfEqSentenceOnFields, int index, int paginationSize) { FullTextQuery fullTextQuery = createFullTextQueryForfindSetOfStartingUsingWildcardAndSetOfExactByAttributes(setOfStartSentenceOnFields, setOfEqSentenceOnFields); fullTextQuery.setFirstResult(index); fullTextQuery.setMaxResults(paginationSize); fullTextQuery.setFetchSize(paginationSize); return fullTextQuery.list(); }
@Override protected void doAction(FullTextSession s, int jobSeed) { FullTextQuery q = getQuery( "John Doe", s, Detective.class ); q.setMaxResults( 10 ); q.getResultSize(); }
@Override protected void doAction(FullTextSession s, int jobSeed) { FullTextQuery q = getQuery( "John", s, Detective.class ); List list = q.setMaxResults( 1 ).list(); for ( Object o : list ) { Detective detective = (Detective) o; detective.setPhysicalDescription( "old" ); } } }
@Test public void testFirstResultAndMaxResults() throws Exception { Session s = openSession(); FullTextSession session = Search.getFullTextSession( s ); Transaction tx = s.beginTransaction(); QueryDescriptor query = ElasticsearchQueries.fromJson( "{ 'query': { 'match' : { 'abstract' : 'Hibernate' } } }" ); List<?> result = session.createFullTextQuery( query, ScientificArticle.class ) .setFirstResult( 1 ) .setMaxResults( 2 ) .setSort( new Sort( new SortField( "id", SortField.Type.STRING, false ) ) ) .list(); assertThat( result ).extracting( "title" ).containsExactlyInAnyOrder( "Latest in ORM", "High-performance ORM" ); tx.commit(); s.close(); }
@Test public void testIterateEmptyHits() throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( openSession() ); Transaction tx = fullTextSession.beginTransaction(); QueryParser parser = new QueryParser( "dept", TestConstants.standardAnalyzer ); Query query = parser.parse( "dept:XXX" ); org.hibernate.search.FullTextQuery hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ); Iterator iter = hibQuery.iterate(); assertFalse( iter.hasNext() ); hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ).setFirstResult( 10 ).setMaxResults( 20 ); iter = hibQuery.iterate(); assertFalse( iter.hasNext() ); tx.commit(); fullTextSession.close(); }
@Override protected void execute(FullTextSession fts) { Query q = fts.getSearchFactory() .buildQueryBuilder() .forEntity( Book.class ) .get() .all() .createQuery(); fts.createFullTextQuery( q, Book.class ) .setSort( new Sort( new SortField( "rating", SortField.Type.FLOAT, true ) ) ) .setMaxResults( 100 ) .list(); }
@Override protected void execute(FullTextSession fts) { Query q = fts.getSearchFactory() .buildQueryBuilder() .forEntity( Book.class ) .get() .all() .createQuery(); fts.createFullTextQuery( q, Book.class ) .setSort( new Sort( new SortField( "totalSold", SortField.Type.LONG, true ) ) ) .setMaxResults( 100 ) .list(); }
@Override protected void execute(FullTextSession fts) { Query q = fts.getSearchFactory() .buildQueryBuilder() .forEntity( Book.class ) .get() .all() .createQuery(); fts.createFullTextQuery( q, Book.class ) .setSort( new Sort( new SortField( "publicationDate", SortField.Type.LONG, true ) ) ) .setMaxResults( 100 ) .list(); }