关于lucene的遍历
rq2_79
2010-03-03
通过indexsearch查询后的结果,如果我遍历的话,lucene的处理机制是怎么样的?如果我查询出100w个,从头循环到尾,他的doc是不是一个个的都加载到内存,我测试的时候就就这样内存溢出了,为什么前面用过的doc不抛弃掉那,还是别的地方存在问题那,请兄弟姐妹们不胜赐教!
|
|
imjl
2010-03-03
在100w循环内,你做什么动作呢?
通常你需要返回多少doc,满足当前页面显示就够了,,一般也就是10,15,20条doc。 |
|
illu
2010-03-03
囧。。 你一次返回那么多干什么。。
|
|
rq2_79
2010-03-03
当然我也希望就返回10条就可以了啊,不过现在业务需求所有的数据要进行一次遍历分类,分类就有100w多,你们说怎么办
|
|
illu
2010-03-03
你一次查100W不会溢出
但是你要是去取document里面的内容就会溢出 一批一批搞吧 =。= |
|
rq2_79
2010-03-03
难道要取10w个就colse一下???
|
|
rq2_79
2010-03-03
colse并不能解决问题,下次其实docid将从n+1次开始,内存还是不会释放的!!!
|
|
luckaway
2010-03-03
吧最后几条都取出来对搜索引擎来说是不怎么好友!
如果仅仅是遍历 可以加个自增的字段! 那就可以通过范围条件来遍历了! |
|
rq2_79
2010-03-03
不仅仅是遍历,还要进行分组和排序!!!分组的组别就有100w多
|
|
rq2_79
2010-03-03
对于Topdocs难道没有对应的30-40的doc取发的吗?lucene为啥不提供这个跟数据库的分页一个概念的东西拿?
|