level 1
vector0228
楼主
lucene目前我说知道的分页搜索有两种方式?
第一种:
TopDocs hits = searcher.search(query, num);
然后再截取指定页的数据。
第二种:
TopDocs hits = searcher.searchAfter(preDoc, query, pageSize);
指定上一页的最后文档元素,查询当前页的数据,看起来很美好,其实仍需要先用第一种方式查询上一页的最后文档元素。
两种方式都是有弊端的:当查询的页数很大,会一下查询出大量数据而消耗大量内存。
希望能推荐Lucene更好的实现分页的方式,或拓展的实现策略,谢谢!
2017年12月19日 03点12分
1
第一种:
TopDocs hits = searcher.search(query, num);
然后再截取指定页的数据。
第二种:
TopDocs hits = searcher.searchAfter(preDoc, query, pageSize);
指定上一页的最后文档元素,查询当前页的数据,看起来很美好,其实仍需要先用第一种方式查询上一页的最后文档元素。
两种方式都是有弊端的:当查询的页数很大,会一下查询出大量数据而消耗大量内存。
希望能推荐Lucene更好的实现分页的方式,或拓展的实现策略,谢谢!