import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;

public class Indexer {
	public static void main (String[] argv) 
		throws Exception {
		String indexdir = argv[0];
		String sourcedir = argv[1];
		
		IndexWriter writer = new IndexWriter(indexdir, 
				new StandardAnalyzer(), 
				true);
		writer.setInfoStream(System.err);
		
		File source = new File(sourcedir);
		
		File[] files = source.listFiles();
		for (int i = 0; i < files.length; i++) {
			System.err.println("Indexing " 
					+ files[i].getCanonicalPath());
			Document doc = new Document();
			doc.add(new Field("content", 
					new BufferedReader(
							new FileReader(files[i])), 
					Field.TermVector.YES));
			doc.add(new Field("filename", 
					files[i].getCanonicalPath(), 
					Field.Store.YES, 
					Field.Index.UN_TOKENIZED));
			writer.addDocument(doc);
		}
		
		writer.optimize();
		writer.close();
	}
}
