, @DarkFalcon, .Net, . . , . Java Lucene 4.5.0, , Lucene.Net.
API IndexWriter. IndexWriter.AddIndexes. , , , .
, , MultiReader , .
IndexMergeTool, :
using System;
using Lucene.Net.Index;
using Lucene.Net.Store;
public class IndexMergeTool
{
public static void Main(string[] args)
{
if (args.Length < 3)
{
Console.Error.WriteLine("Usage: IndexMergeTool <mergedIndex> <index1> <index2> [index3] ...");
Environment.Exit(1);
}
FSDirectory mergedIndex = FSDirectory.Open(args[0]);
IndexWriter writer = new IndexWriter(mergedIndex, null, true, IndexWriter.MaxFieldLength.UNLIMITED);
IndexReader[] indexes = new IndexReader[args.Length - 1];
for (int i = 1; i < args.Length; i++)
{
indexes[i - 1] = IndexReader.Open(FSDirectory.Open(args[i]), true);
}
Console.WriteLine("Merging...");
writer.AddIndexes(indexes);
Console.WriteLine("Closing Readers...");
foreach (IndexReader index in indexes)
{
index.Dispose();
}
writer.Dispose();
Console.WriteLine("Done.");
}
}