7.5.2.2. 结果大小
有时,了解匹配文档总数很有用:
- 提供由 Google 搜索提供的总搜索结果功能。例如,"在大约 888,000,000 结果中,1-10"
- 实施快速分页导航
- 实施多步骤搜索引擎,以便在受限查询返回零或没有足够的结果时添加约法
当然,检索所有匹配文件的成本过高。Hibernate Search 允许您检索匹配文档的总数,而不考虑分页参数。更有趣的是,您可以检索匹配元素的数量,而无需触发单个对象负载。
示例:确定查询的结果大小
org.hibernate.search.FullTextQuery query =
s.createFullTextQuery( luceneQuery, Book.class );
//return the number of matching books without loading a single one
assert 3245 == ;
org.hibernate.search.FullTextQuery query =
s.createFullTextQuery( luceneQuery, Book.class );
query.setMaxResult(10);
List results = query.list();
//return the total number of matching books regardless of pagination
assert 3245 == ;
注意
与 Google 一样,如果索引未完全与数据库保持最新(例如,异步集群),则结果数量是近似的。