2014-09-18 6 views
1

Я использую Hibernate Полный текст поиска. В настоящее время я использую:Hibernate Полный текст Поиск Pagination

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-search</artifactId> 
    <version>4.5.1.Final</version> 
</dependency> 

Я в состоянии искать все в порядке. У меня есть вопрос: как я могу разбивать свои результаты? Есть ли способ, который я могу получить, например, 50 результатов, а затем совершать вызовы, когда следующая страница запрашивается для следующих 50 результатов?

Один из способов, о котором я думаю, состоит в том, чтобы просто получить максимальный идентификатор, а затем начать следующий поиск с позиции Max + 1, предполагая, что идентификаторы генерируются в автоматическом инкрементном порядке. Но я думаю, что должен быть более элегантный подход.

ответ

5

От Hibernate search-query docs на разбивке на страницы.

org.hibernate.Query fullTextQuery = 
fullTextSession.createFullTextQuery(luceneQuery, Customer.class); 
fullTextQuery.setFirstResult(15); //start from the 15th element 
fullTextQuery.setMaxResults(10); //return 10 elements 
0

Вы можете преобразовать ваш результат списка из списка на страницу: если вы получите поиск в списке пользователей. вы можете конвертировать вот так:

NBPAGE: pages number you want 
Pageable page=new PageRequest(0,NBPAGE,Sort.Direction.DESC,"date"); 
Page<Annonce> PageList= new PageImpl<Annonce>(users ,page,users.size()); 
Смежные вопросы