Lucene.Net.Demo.IndexHTML.Main C# (CSharp) Method

Main() private method

private Main ( System argv ) : void
argv System
return void
		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);
			}
		}