Lucene搜索结果的Spring-boot分页

时间:2018-02-20 15:35:30

标签: java spring web pagination lucene

在我的网络应用中,我想搜索Lucene创建的索引,并获得前100个结果。

这100个结果是我自己定义的类Document(包含名称title,category和content等的字段)。我将这些放入列表中,但在org.springframework.data.domain.Pageorg.springframework.data.domain.Pageable的帮助下,我无法调整列表以进行分页。

我知道我可以实现一个扩展JpaRepositoryPagingAndSortingRepository的自定义存储库

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
...
public interface Document Repository extends JpaRepository<Document, Long> {

    @Query("SELECT d FROM document d WHERE d.category = :category")
    Page<Document> findByCategory(@Param("category") String category, 
                                                    Pageable pageable);
}

但是在这种情况下,我不会从Lucene给出的数据库中获取数据。

所以我决定在List中收集结果。问题是我必须将List转换为Page来制作分页。

有什么好的解决方案吗?我对Spring不是很熟悉。我不是自己尝试实施分页。

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

@Query("SELECT d FROM document d WHERE d.category = :category",nativeQuery = true)
Page<Document> findByCategory(@Param("category") String category, 
                                                Pageable pageable);