类似的问题被问到但没有解决。 这是我的代码
FullTextSession fullTextSession = Search.getFullTextSession(currentSession());
QueryBuilder qb = fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity(Design.class).get();
org.apache.lucene.search.Query query = qb
.keyword()
.onFields("designName", "description")
.matching(text)
.createQuery();
org.hibernate.search.FullTextQuery hibQuery =
fullTextSession.createFullTextQuery(query, Design.class);
hibQuery.setFirstResult(start);
hibQuery.setMaxResults(num);
@SuppressWarnings("unchecked")
List<Design> designList = hibQuery.list();
for (Design design : designList) {
Hibernate.initialize(design.getDesignImages());
}
return designList;
为什么hibQuery.list()。size()小于hibQuery.getResultSize()。由于这种差异,.setMaxResults()无法正常工作。
答案 0 :(得分:0)
原因可能是索引和数据库在查询时不同步。 getResultSize
基于Lucene查询结果大小,而list.size()
是物化(加载)实体的实际大小。