package com.solr.index;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.TimeZone;
public class IndexCSVFilters {
private SolrClient solrClient;
private static final TimeZone UTC = TimeZone.getTimeZone("UTC");
private SimpleDateFormat solrCompatibleSdf,csvCompatibleSdf;
private static final Logger logger = LoggerFactory.getLogger(IndexCSVFilters.class);
private static final String TIME_STAMP = "T00:00:00Z";
private static final String DATE_STAMP = "1970-01-01T";
private static final String DATE_TIME_FIELD = "DateTime";
private static final String TIME_FIELD = "Time";
private static final String ID_FIELD = "id";
private static final String DATE_PART_Z = "Z";
// private static final String DATA_SET_NAME_FIELD = "DataSetName";
public IndexCSVFilters(String solrUrl, String coreName){
String urlString = solrUrl+"/"+coreName;
solrClient = new HttpSolrClient.Builder(urlString)
.withSocketTimeout(0)
.withConnectionTimeout(0)
.build();
solrCompatibleSdf = new SimpleDateFormat("YYYY-MM-dd'T'HH:mm:ss'Z'");
solrCompatibleSdf.setTimeZone(UTC);
csvCompatibleSdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
csvCompatibleSdf.setTimeZone(UTC);
}
public boolean indexCSVFile(File file){
logger.info("Indexing Started for file : "+file.getName());
try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) {
String line = null;
line = bufferedReader.readLine();
String sep = ";";
if(line.contains(",")){
sep = ",";
}
String fieldNames[] = line.split(sep);
Collection