`
BuN_Ny
  • 浏览: 82646 次
  • 来自: 济南
社区版块
存档分类
最新评论

17) 第二章 索引:优化索引(Optimizing)

阅读更多

 

  索引文件的多个段可以合并成一个或少量几个。这样将节省一部分硬盘空间,更重要的是,它可以加快搜索速度。需要注意的是,是加快搜索速度,并非加快索引速度。方法很简单:

optimize(int maxNumSegments, boolean doWait);

   maxNumSegments 代表合并后可能存在的最大段数,也就是传入5,合并完可能存在1或2或3或4或5个段;另外就是,合并成1个段比合并成5个更耗时。

   doWait 表示是否等待。如果传入false,则该方法会立即返回,索引文件的合并工作将在后台执行。

 

  只提供一个方法是不是显得太单调了?Lucene比较蛋疼的为我们设置了两个特殊状态:maxNumSegments为1 和 doWait为true。下面是这两种的组合:

optimize(boolean doWait);        //该方法的maxNumSegments为1,你可以指定doWait
optimize(int maxNumSegments);    //该方法的doWait为true,你可以指定maxNumSegments
optimize();                      //该方法的maxNumSegments为1,doWait为true

    好了,这一节也非常简单,在结束之前提醒大家一下:在做Optimizing的时候,最好保证磁盘空间足够大,大到是当前索引文件的3倍!具体原因先不细谈了。

 

 

 

 

 

2
1
分享到:
评论
4 楼 BuN_Ny 2012-05-07  
zeng1990 写道
BuN_Ny 写道
feizhang666 写道
现在已经是lucene3.5了,optimize这个方法被弃用了

lucene这个项目很有潜力啊!发展这么快。

是不是说已经不需要优化了,还是有其他的办法进行优化?

不用显示调用了。搜索速度提高了很多,lucene的索引段文件合并挺复杂的,会把大小相近的文件归档到一起,达到一定数量后(默认好像是10个)自动合并。
3 楼 zeng1990 2012-05-07  
BuN_Ny 写道
feizhang666 写道
现在已经是lucene3.5了,optimize这个方法被弃用了

lucene这个项目很有潜力啊!发展这么快。

是不是说已经不需要优化了,还是有其他的办法进行优化?
2 楼 BuN_Ny 2012-01-17  
feizhang666 写道
现在已经是lucene3.5了,optimize这个方法被弃用了

lucene这个项目很有潜力啊!发展这么快。
1 楼 feizhang666 2012-01-14  
现在已经是lucene3.5了,optimize这个方法被弃用了

相关推荐

Global site tag (gtag.js) - Google Analytics