package org.solrmarc.solr;
import java.io.IOException;
import java.util.Collection;
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.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.util.NamedList;
public class SolrServerProxy extends SolrProxy
{
final SolrServer solrserver;
public SolrServerProxy(SolrServer solrserver)
{
this.solrserver = solrserver;
}
public SolrServerProxy(Object httpsolrserver)
{
this.solrserver = (SolrServer)httpsolrserver;
}
public int addDoc(SolrInputDocument inputDoc)
{
int num = 0;
try
{
UpdateResponse resp = solrserver.add(inputDoc);
@SuppressWarnings("unused")
int status = resp.getStatus();
return(++num);
}
catch (SolrException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
catch (SolrServerException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
catch (IOException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
}
@Override
public int addDocs(Collection<SolrInputDocument> docQ)
{
int num = 0;
try
{
UpdateResponse resp = solrserver.add(docQ);
NamedList<Object> respresp = resp.getResponse();
@SuppressWarnings("unused")
int size = respresp.size();
num += docQ.size();
return(num);
}
catch (SolrException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
catch (SolrServerException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
catch (IOException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
}
public void commit(boolean optimize)
{
try
{
if (optimize)
solrserver.optimize();
else
solrserver.commit();
}
catch (SolrServerException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
catch (IOException e)
{
throw(new SolrRuntimeException("IOException", e));
}
}
public void delete(String id)
{
try
{
solrserver.deleteById(id);
}
catch (SolrServerException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
catch (IOException e)
{
throw(new SolrRuntimeException("IOException", e));
}
}
@Override
public QueryResponse query(SolrQuery params)
{
try
{
return solrserver.query(params);
}
catch (SolrServerException e)
{
throw(new SolrRuntimeException("SolrserverException", e));
}
}
}