创建lucene indexWriter开销



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

我想为50个不同的索引目录运行上面的代码,所以我想知道如果打开一个indexwriter有开销吗?

它有一些开销,包括创建一个锁文件(参见第133行),读取段信息,以及一堆其他可能昂贵也可能不昂贵的东西。

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

查看java源代码,从第816行开始。这不是一个小的构造函数,但是您必须判断它的重要性。

最新更新