我不知道发生了什么变化——我们的 Lucene 实现运行得相对较好。但是现在,索引目录中的文件数量一直在增长。它从 _0 个文件开始,然后出现 _1 个文件,然后是 _2 和 _3 个文件。如果开始时该目录中存在现有文件,我将 false 传递给 IndexWriter 的“create”参数的构造函数:
indexWriter = new IndexWriter(azureDirectory, analyzer, (azureDirectory.ListAll().Length == 0), IndexWriter.MaxFieldLength.UNLIMITED);
if (indexWriter != null)
{
// Set the number of segments to save in memory before writing to disk.
indexWriter.MergeFactor = 1000;
indexWriter.UseCompoundFile = false;
indexWriter.SetRAMBufferSizeMB(800);
...
indexWriter.Dispose(); indexWriter = null;
}
也许它与 UseCompoundFile 标志有关?
每隔几分钟,我创建一个新的 IndexWriter,处理 10,000 个文档,然后处理 IndexWriter。该索引有效,但文件数量的增长非常糟糕,因为我正在使用 AzureDirectory,它将 Azure 中的每个文件复制到缓存目录中,然后再开始 Lucene 写入。
谢谢。