/*
* Copyright (c) 2015 Felix Husse under MIT License
* see LICENSE file
*/
package de.fatalix.book.importer;
import de.fatalix.bookery.solr.model.BookEntry;
import java.io.IOException;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
/**
*
* @author felix.husse
*/
public class SolrHandler {
public static SolrServer createConnection(String solrURL, String solrCore) throws SolrServerException, IOException {
if (!solrURL.endsWith("/")) {
solrURL = solrURL + "/";
}
HttpSolrServer solrServer = new HttpSolrServer(solrURL + solrCore);
try {
if (solrServer.ping().getStatus()!=0) {
throw new SolrServerException("Solr Server not found! ");
}
} catch (HttpSolrServer.RemoteSolrException ex) {
throw new SolrServerException(ex.getMessage(),ex);
}
return solrServer;
}
public static QueryResponse searchSolrIndex(SolrServer solr,String queryString, int rows, int startOffset) throws SolrServerException {
SolrQuery query = new SolrQuery();
query.setQuery(queryString);
query.setRows(rows);
query.setStart(startOffset);
QueryResponse rsp = solr.query(query);
return rsp;
}
public static UpdateResponse addBeans(SolrServer solr, List<BookEntry> bookEntries) throws SolrServerException, IOException {
solr.addBeans(bookEntries);
return solr.commit();
}
public static void resetSolrIndex(SolrServer solr) throws SolrServerException, IOException {
solr.deleteByQuery("*:*");
solr.commit();
}
}