何が変わったのかはわかりませんが、Lucene の実装では比較的うまく機能していました。しかし現在、インデックス ディレクトリ内のファイルの数は増え続けています。_0 ファイルから始まり、_1 ファイルが表示され、次に _2 および _3 ファイルが表示されました。開始時にそのディレクトリに既存のファイルがある場合、「作成」パラメーターの IndexWriter のコンストラクターに false を渡します。
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 を破棄します。インデックスは機能しますが、Lucene の書き込みを開始する前に Azure からすべてのファイルをキャッシュ ディレクトリにコピーする AzureDirectory を使用しているため、ファイル数の増加は非常に悪いものです。
ありがとう。