package vishnu.builder; import java.io.*; import java.util.*; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.index.IndexWriter; public class LuceneWrapper extends Indexer { private static void usage() { System.out.println("java LucenceWrapper -i InputDirectory \n -o OutputDirectory \n -c CollectionName"); } public static void main(String[] args) { String in = null; String out = null; String coll = null; if( args.length == 0 ){ usage(); System.exit(0); } int a = 0; while( a < args.length ){ if( args[a].equals("-i") ) in = args[++a]; if( args[a].equals("-o") ) out = args[++a]; if( args[a].equals("-c") ) coll = args[++a]; a++; } if (out==null || in==null|| coll==null) { usage(); System.exit(0); } if (!out.endsWith(File.separator)) { out += File.separator; } if (!in.endsWith(File.separator)) { in += File.separator; } LuceneWrapper luc = new LuceneWrapper(); out = out + "luc_index"; luc.setCollectionName(coll); luc.setOutputDirectory(out); luc.setInputDirectory(in); luc.startIndexing(); } public LuceneWrapper() { super("Lucene Indexer"); } public void startIndexing() { initialize(); try { IndexWriter writer = new IndexWriter(outputDir, new StandardAnalyzer(), true); // this is a bit of a hack putting import here indexFiles(writer, new File(inputDir), "import/"); writer.optimize(); writer.close(); } catch (Exception e) { System.err.println("Error creating the Lucene index: "+e); System.exit(0); } } private void indexFiles(IndexWriter writer, File input_dir, String current_path) { File [] doc_list = input_dir.listFiles(); for (int i=0; i