package lux.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.xml.stream.XMLStreamException; import lux.index.XmlIndexer; import net.sf.saxon.s9api.SaxonApiException; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.Directory; import org.apache.lucene.store.SimpleFSDirectory; /** * Accepts the name of a Lucene index data directory and loads the exploded hamlet.xml * sample data to it. */ public class LoadDemoData { public static void main (String [] argv) throws XMLStreamException, IOException, SaxonApiException { String indexDir; if (argv.length != 1) { // System.err.println ("Usage: java LoadDemoData <index directory>"); indexDir = "solr/data/index"; } else { indexDir = argv[0]; } Directory index = new SimpleFSDirectory (new File(indexDir)); String dataDir = "samples/wikipedia"; XmlIndexer indexer = new XmlIndexer(); // indexer.getXmlReader().setStripNamespaces(true); IndexWriter indexWriter = indexer.newIndexWriter(index); indexWriter.deleteAll(); index (indexer, indexWriter, dataDir); indexWriter.commit(); indexWriter.close(true); } private static void index(XmlIndexer indexer, IndexWriter indexWriter, String path) throws IOException, XMLStreamException { File file = new File (path); if (file.isFile()) { if (path.matches(".*\\.xml$")) { System.out.println (path); indexer.indexDocument(indexWriter, path, new FileInputStream (file)); } else { System.out.println ("skipping " + path); } } else { for (String child : file.list()) { index (indexer, indexWriter, path + '/' + child); } } } }