0
我正在创建一个REST API,Angular 2在前端和Spring在后端的Web站点。当我查看请求结果时,有无限滚动。我正在使用全文搜索来查找我的请求的匹配项。我的问题是如何在我的Hibernate搜索中创建分段请求?如果可能,请介绍一些代码示例。休眠搜索分区请求
的代码和平,我使用的全文检索
@Repository
@Transactional
public class HibernateSearch {
@PersistenceContext
private EntityManager entityManager;
public List<Manual> fulltextSearching(String keyword){
if(keyword.equals("")) return Collections.emptyList();
FullTextEntityManager fullTextEntityManager =
org.hibernate.search.jpa.Search.getFullTextEntityManager(entityManager);
QueryBuilder qb = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(Manual.class).get();
javax.persistence.Query jpaQuery =
fullTextEntityManager.createFullTextQuery(createQuery(qb, keyword), Manual.class);
@SuppressWarnings("unchecked")
List<Manual> result = jpaQuery.getResultList();
return result;
}
private org.apache.lucene.search.Query createQuery(QueryBuilder qb, String keyword){
return qb
.keyword()
.onFields("name", "introduction", "user.username", "tags.name")
.matching(keyword)
.createQuery();
}
}
谢谢,它对我很有用 –
要获得第二页,你需要创建一个新的'FullTextQuery'还是可以重用'jpaQuery'对象? – nuoritoveri
@nuoritoveri只要您的EntityManager打开,您可以重复使用该查询。 –