package uk.ac.shef.dcs.jate.app;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
import uk.ac.shef.dcs.jate.JATEException;
import uk.ac.shef.dcs.jate.JATEProperties;
import uk.ac.shef.dcs.jate.indexing.IndexingHandler;
import uk.ac.shef.dcs.jate.io.TikaSimpleDocumentCreator;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class Indexing {
public static void main(String[] args) throws IOException, JATEException, SolrServerException {
Logger logger = Logger.getLogger(Indexing.class.getName());
JATEProperties prop = new JATEProperties(args[0]);
boolean deletePrevious = Boolean.valueOf(args[2]);
SolrClient solrClient = new EmbeddedSolrServer(Paths.get(args[3]), args[4]);
try {
if (deletePrevious) {
logger.info("DELETING PREVIOUS INDEX");
solrClient.deleteByQuery("*:*");
solrClient.commit();
}
logger.info("INDEXING BEGINS");
IndexingHandler m = new IndexingHandler();
List<String> files = new ArrayList<>();
for (File f : new File(args[1]).listFiles())
files.add(f.toString());
m.index(files, prop.getIndexerMaxUnitsToCommit(), new TikaSimpleDocumentCreator(), solrClient, prop);
logger.info("INDEXING COMPLETE");
System.exit(0);
} finally {
solrClient.close();
}
}
}