public static void Main(System.String[] argv)
{
try
{
var index = new System.IO.DirectoryInfo("index");
bool create = false;
System.IO.DirectoryInfo root = null;
System.String usage = "IndexHTML [-create] [-index <index>] <root_directory>";
if (argv.Length == 0)
{
System.Console.Error.WriteLine("Usage: " + usage);
return ;
}
for (int i = 0; i < argv.Length; i++)
{
if (argv[i].Equals("-index"))
{
// parse -index option
index = new System.IO.DirectoryInfo(argv[++i]);
}
else if (argv[i].Equals("-create"))
{
// parse -create option
create = true;
}
else if (i != argv.Length - 1)
{
System.Console.Error.WriteLine("Usage: " + usage);
return ;
}
else
root = new System.IO.DirectoryInfo(argv[i]);
}
if (root == null)
{
System.Console.Error.WriteLine("Specify directory to index");
System.Console.Error.WriteLine("Usage: " + usage);
return ;
}
System.DateTime start = System.DateTime.Now;
if (!create)
{
// delete stale docs
deleting = true;
IndexDocs(root, index, create);
}
writer = new IndexWriter(FSDirectory.Open(index), new StandardAnalyzer(Version.LUCENE_CURRENT), create, new IndexWriter.MaxFieldLength(1000000));
IndexDocs(root, index, create); // add new docs
System.Console.Out.WriteLine("Optimizing index...");
writer.Optimize();
writer.Close();
System.DateTime end = System.DateTime.Now;
System.Console.Out.Write(end.Millisecond - start.Millisecond);
System.Console.Out.WriteLine(" total milliseconds");
}
catch (System.Exception e)
{
System.Console.Error.WriteLine(e.StackTrace);
}
}