www.pudn.com > lucene.rar > IndexFiles.java


/* 
 * Created on 2005-12-31 
 * 
 * TODO To change the template for this generated file go to 
 * Window - Preferences - Java - Code Style - Code Templates 
 */ 
package examples.ch; 
 
import org.apache.lucene.analysis.cn.ChineseAnalyzer; 
import org.apache.lucene.analysis.standard.StandardAnalyzer; 
import org.apache.lucene.index.IndexWriter; 
 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.util.Date; 
 
class IndexFiles { 
  public static void main(String[] args) throws IOException { 
    String usage = "java " + IndexFiles.class + " "; 
    /*if (args.length == 0) { 
      System.err.println("Usage: " + usage); 
      System.exit(1); 
    } 
*/ 
    String src="file"; 
    File srcpath=new File(src); 
    Date start = new Date(); 
    try { 
      IndexWriter writer = new IndexWriter("index", new ChineseAnalyzer(), true); 
      indexDocs(writer, srcpath); 
 
      writer.optimize(); 
      writer.close(); 
 
      Date end = new Date(); 
 
      System.out.print(end.getTime() - start.getTime()); 
      System.out.println(" total milliseconds"); 
 
    } catch (IOException e) { 
      System.out.println(" caught a " + e.getClass() + 
       "\n with message: " + e.getMessage()); 
    } 
  } 
 
  public static void indexDocs(IndexWriter writer, File file) 
    throws IOException { 
    // do not try to index files that cannot be read 
    if (file.canRead()) { 
      if (file.isDirectory()) { 
        String[] files = file.list(); 
        // an IO error could occur 
        if (files != null) { 
          for (int i = 0; i < files.length; i++) { 
            indexDocs(writer, new File(file, files[i])); 
          } 
        } 
      } else { 
        System.out.println("adding " + file); 
        try { 
          writer.addDocument(FileDocument.Document(file)); 
        } 
        // at least on windows, some temporary files raise this exception with an "access denied" message 
        // checking if the file can be read doesn't help 
        catch (FileNotFoundException fnfe) { 
          ; 
        } 
      } 
    } 
  } 
}