Package zh.solr.se.indexer

Source Code of zh.solr.se.indexer.IndexerMain

package zh.solr.se.indexer;

import zh.solr.se.indexer.chinese.ChineseIndexer;
import zh.solr.se.indexer.solrproxy.SolrConstants;
import zh.solr.se.indexer.solrproxy.UnsupportedCoreException;

public class IndexerMain {
  private void run(final String coreName, String dataType, String sourceFile)
      throws Exception {
    final IndexerBase indexer = getIndexer(coreName, dataType, sourceFile);
    if (indexer != null) {
      indexer.startIndexing();
    }
  }

  private IndexerBase getIndexer(final String coreName, String dataType,
      String sourceFile) throws UnsupportedCoreException {
    if (SolrConstants.CORE_NAME_CHINESE.equalsIgnoreCase(coreName)) {
      return new ChineseIndexer(dataType, sourceFile);
    } else {
      throw new UnsupportedCoreException(coreName);
    }
  }

  private void printUsage() {
    System.out.println("Usage: java -Xms500m -Xmx1500m -cp ./indexer.jar "
        + IndexerMain.class.getPackage()
        + " core_name data_type [index_source_file]");
  }

  public static void main(final String[] args) {
    final IndexerMain instance = new IndexerMain();

    String coreName = args[0];
    if (!coreName.startsWith("core-")) {
      coreName = "core-" + coreName;
    }

    String dataType = args[1].trim().toLowerCase();
    if (dataType.equals("json") || dataType.equals("xml")
        || dataType.equals("csv")) {
      if (args.length != 3) {
        instance.printUsage();
        System.exit(1);
      }
      String sourceFile = args[2].trim();
      try {
        instance.run(coreName, dataType, sourceFile);
        System.exit(0);
      } catch (final Exception e) {
        // Don't use e.getMessage(), sometimes it returns null
        System.err.println("Indexer for core: " + coreName
            + ", failed. Error: " + e);
        e.printStackTrace();
        System.exit(2);
      }
    } else if (dataType.equals("mysql")) {
      try {
        instance.run(coreName, dataType, null);
        System.exit(0);
      } catch (final Exception e) {
        // Don't use e.getMessage(), sometimes it returns null
        System.err.println("Indexer for core: " + coreName
            + ", failed. Error: " + e);
        e.printStackTrace();
        System.exit(2);
      }
    }

  }
}
TOP

Related Classes of zh.solr.se.indexer.IndexerMain

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.