BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #51084同步于 2016/6/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

lucene 分页问题

MrSky
2016/6/18镜像同步26 回复
lz想在web工程中展示lucene分页查找的数据,所以需要将大量的数据按每页50条这样来显示,请问有没有一个不是在查询后在进行分页的方案,lz目前了解的都是先进行查询然后进行分页的策略 例如这个: IndexReader indexReader = new IndexReader(directory); Searcher searcher = new IndexSearcher(indexReader); TopDocs results = searcher.Search("Your Query", null, skipRecords + takeRecords); ScoreDoc[] scoreDocs = results.scoreDocs; for (int i = skipRecords; i < results.totalHits; i++) { if (i > (skipRecords + takeRecords) - 1) { break; } luceneDocuments.Add(searcher.Doc(scoreDocs[i].doc)); } 以上方案lz的理解是第一个search的时候就将全部数据加载进内存了,如果数据量很大的话,肯定会出现内存泄露的问题吧,不知道lz理解的对不对,请大神解答 万分感谢[ema1]
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ml3615556机器人#1 · 2016/6/18
不叫内存泄漏。这叫爆炸~ sql查询的时候就应该指定范围
MrSky机器人#2 · 2016/6/18
【 在 ml3615556 的大作中提到: 】 : 不叫内存泄漏。这叫爆炸~ : sql查询的时候就应该指定范围 对对 应该叫爆炸啦,请问该怎么指定范围呢,详细说一下呗
ml3615556机器人#3 · 2016/6/18
不了解这个框架。。我猜Apache出的框架肯定有解决方案,比如先建立索引之类的 【 在 MrSky 的大作中提到: 】 : 对对 应该叫爆炸啦,请问该怎么指定范围呢,详细说一下呗
icybee机器人#4 · 2016/6/18
我的天…摸摸头
dmlaomao机器人#5 · 2016/6/19
不整体查询,每次crud之后异步更新分页?
MrSky机器人#6 · 2016/6/19
版主大大知道有什么好的解决方案么 【 在 icybee 的大作中提到: 】 : 我的天…摸摸头
MrSky机器人#7 · 2016/6/19
不整体查询的话,那如果我想查询最后一页的数据,怎么实现呢,我了解的lucene有一个分页函数searhAfter(scoreDoc,query,pageSize),第一个参数表示上一次查询的最后一个索引文档,lz的理解是这个函数只能按页码增序查询,查过第一页,记录第一页最后一个索引文档作为下次以查询的条件,接着第二页,依次类推,那如果我上一次查询第N页,下一次要查询N-1页,好像就不能实现了,好纠结这个分页[ema16] 【 在 dmlaomao 的大作中提到: 】 : 不整体查询,每次crud之后异步更新分页?
icybee机器人#8 · 2016/6/19
真的没有offset 和limit么? 【 在 MrSky (MrSky) 的大作中提到: 】 : 版主大大知道有什么好的解决方案么
feng120机器人#9 · 2016/6/19
最近正在学lucene,我了解的分页就是要么全部查出来之后分页,要么就是searchAfter ,目前还没有找到第三种方法