string indexDirectory1 = Server.MapPath( " index/1000000-1200000/ " ); Directory directory1 = FSDirectory.GetDirectory(indexDirectory1, false ); string indexDirectory2 = Server.MapPath( " index/1200000-1400000/ " ); Directory directory2 = FSDirectory.GetDirectory(indexDirectory2, false ); string indexDirectory3 = Server.MapPath( " index/1400000-1600000/ " ); Directory directory3 = FSDirectory.GetDirectory(indexDirectory3, false ); string indexDirectory4 = Server.MapPath( " index/1600000-1800000/ " ); Directory directory4 = FSDirectory.GetDirectory(indexDirectory4, false ); string indexDirectory5 = Server.MapPath( " index/1800000-2000000/ " ); Directory directory5 = FSDirectory.GetDirectory(indexDirectory5, false ); string indexDirectory6 = Server.MapPath( " index/2000000-2190713/ " ); Directory directory6 = FSDirectory.GetDirectory(indexDirectory6, false ); string indexDirectory = Server.MapPath( " index/Merge/ " ); StandardAnalyzer analyzer = new StandardAnalyzer(); Lucene.Net.Index.IndexWriter writer = new Lucene.Net.Index.IndexWriter(indexDirectory, analyzer, false ); writer.AddIndexes( new Directory[] ... {directory1, directory2, directory3, directory4, directory5, directory6} ); DateTime start = DateTime.Now; try ... { writer.Optimize(); } finally ... { writer.Close(); } Response.Write( " 优化索引费时( " + (DateTime.Now - start) + " ) " );