2011-08-06 36 views
1

创建lucene indexWriter开销?

 
IndexWriter myWriter = new IndexWriter(pathOnDisk); 
int segCount = myWriter.GetSegmentCount(); 
if (segCount > 1) 
    myWriter.Optimize(); 
myWriter.Close() 

我想为50个不同的索引目录运行上面的代码,所以我想知道是否打开一个索引编写器有开销?

回答

0

它有一些开销,包括创建锁定文件(请参见第133行),阅读段信息以及其他一些可能会或可能不会很贵的东西。

0113打开IndexWriter为正在使用的目录创建一个锁定文件。试图打开 另一个IndexWriter在同一目录将导致一个 {@LockObtainFailedException}。如果使用同一目录中的IndexReader从索引中删除文档 ,则也会抛出{@LockObtainFailedException} 。

检查出java source,从第816行开始。它不是一个小的构造函数,但是你必须要判断它有多重要。