首页 新闻 会员 周边

关于lucene索引的

0
[已解决问题] 解决于 2009-04-15 10:40

刚刚想把lucene全文检索应用到网站中去,有一些问题,希望各位解答:

1、Hits获取到后,通过hits.Length()来获取搜索到的结果数,那么我想知道的是,这里hits的集合,里面是不是包括了所有的documents对象?如果是,那搜索出来数据量很大的话,不会导致内存益出?如果不是,那到我在循环的时候,通过hits.Doc(i)获取对象,这里是怎么获取,再动态的去索引文件里找?还是怎么样的?

2、分页问题,网站介绍的无非是在已搜索出来的hits集合里找出当前页所在的记录。这里有一个问题,那就是当我再一次按页码的时候,我怎么来保存已经搜索出来的hits集合,这里没有必要再去搜索一次,不然浪费IO资源。这里有什么好的解决办法?

李.net的主页 李.net | 小虾三级 | 园豆:730
提问于:2009-04-15 09:45
< >
分享
最佳答案
0

1、 不是。实际上Lucene在索引时只是获取了前100个document 对象的DocId,Score等以及索引出来的结果总数。如果你通过 hits.Doc(i)获取对象,lucene 会判断i 是否超出了之前的缓存,如果超出了,会接下来获取新的100条记录来缓存,否则直接返回。

2、Lucene的建议是再搜索一次,并不浪费IO资源,因为搜索时只是查索引,而索引在你第一次查的时候已经缓存了。

下面是搜索引擎小组

http://space.cnblogs.com/group/search/

下面是搜索引擎团队博客

http://searchengine.cnblogs.com/

你可以从这些资源中获取更多帮助

eaglet | 专家六级 |园豆:17139 | 2009-04-15 10:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册