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倍!具体原因先不细谈了。

猜你喜欢

转载自bun-ny.iteye.com/blog/1102140