mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
omit xml parsing when using the embedded solr server
This commit is contained in:
parent
787e1c6836
commit
7cd302de3e
|
@ -27,7 +27,9 @@ import java.io.IOException;
|
|||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
|
||||
import org.apache.solr.client.solrj.SolrServerException;
|
||||
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
|
||||
import org.apache.solr.client.solrj.response.QueryResponse;
|
||||
import org.apache.solr.common.SolrDocument;
|
||||
import org.apache.solr.common.SolrDocumentList;
|
||||
import org.apache.solr.common.SolrException;
|
||||
|
@ -155,6 +157,16 @@ public class EmbeddedSolrConnector extends SolrServerConnector implements SolrCo
|
|||
return rsp;
|
||||
}
|
||||
|
||||
public QueryResponse query(SolrParams params) throws IOException {
|
||||
try {
|
||||
return server.query(params);
|
||||
} catch (SolrServerException e) {
|
||||
throw new IOException(e);
|
||||
} catch (Throwable e) {
|
||||
throw new IOException("Error executing query", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
File solr_config = new File("defaults/solr");
|
||||
File storage = new File("DATA/INDEX/webportal/SEGMENTS/text/solr/");
|
||||
|
|
|
@ -50,7 +50,14 @@ import org.apache.http.impl.client.BasicAuthCache;
|
|||
import org.apache.http.impl.client.BasicCredentialsProvider;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.protocol.HttpContext;
|
||||
import org.apache.solr.client.solrj.ResponseParser;
|
||||
import org.apache.solr.client.solrj.SolrServerException;
|
||||
import org.apache.solr.client.solrj.impl.HttpSolrServer;
|
||||
import org.apache.solr.client.solrj.impl.XMLResponseParser;
|
||||
import org.apache.solr.client.solrj.request.QueryRequest;
|
||||
import org.apache.solr.client.solrj.response.QueryResponse;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
|
||||
|
||||
public class RemoteSolrConnector extends SolrServerConnector implements SolrConnector {
|
||||
|
@ -148,6 +155,23 @@ public class RemoteSolrConnector extends SolrServerConnector implements SolrConn
|
|||
this.terminate();
|
||||
}
|
||||
|
||||
public QueryResponse query(SolrParams params) throws IOException {
|
||||
try {
|
||||
QueryRequest request = new QueryRequest(params);
|
||||
ResponseParser responseParser = new XMLResponseParser();
|
||||
request.setResponseParser(responseParser);
|
||||
long t = System.currentTimeMillis();
|
||||
NamedList<Object> result = server.request(request);
|
||||
QueryResponse response = new QueryResponse(result, server);
|
||||
response.setElapsedTime(System.currentTimeMillis() - t);
|
||||
return response;
|
||||
} catch (SolrServerException e) {
|
||||
throw new IOException(e);
|
||||
} catch (Throwable e) {
|
||||
throw new IOException("Error executing query", e);
|
||||
}
|
||||
}
|
||||
|
||||
public String getAdminInterface() {
|
||||
final InetAddress localhostExternAddress = Domains.myPublicLocalIP();
|
||||
final String localhostExtern = localhostExternAddress == null ? "127.0.0.1" : localhostExternAddress.getHostAddress();
|
||||
|
|
|
@ -28,22 +28,18 @@ import java.util.List;
|
|||
|
||||
import net.yacy.kelondro.logging.Log;
|
||||
|
||||
import org.apache.solr.client.solrj.ResponseParser;
|
||||
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.XMLResponseParser;
|
||||
import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
|
||||
import org.apache.solr.client.solrj.request.QueryRequest;
|
||||
import org.apache.solr.client.solrj.response.QueryResponse;
|
||||
import org.apache.solr.common.SolrDocument;
|
||||
import org.apache.solr.common.SolrDocumentList;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.params.SolrParams;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
|
||||
public class SolrServerConnector extends AbstractSolrConnector implements SolrConnector {
|
||||
public abstract class SolrServerConnector extends AbstractSolrConnector implements SolrConnector {
|
||||
|
||||
protected SolrServer server;
|
||||
protected int commitWithinMs; // max time (in ms) before a commit will happen
|
||||
|
@ -211,23 +207,8 @@ public class SolrServerConnector extends AbstractSolrConnector implements SolrCo
|
|||
final SolrDocumentList docs = rsp.getResults();
|
||||
return docs;
|
||||
}
|
||||
|
||||
public QueryResponse query(SolrParams params) throws IOException {
|
||||
try {
|
||||
QueryRequest request = new QueryRequest(params);
|
||||
ResponseParser responseParser = new XMLResponseParser();
|
||||
request.setResponseParser(responseParser);
|
||||
long t = System.currentTimeMillis();
|
||||
NamedList<Object> result = server.request(request);
|
||||
QueryResponse response = new QueryResponse(result, server);
|
||||
response.setElapsedTime(System.currentTimeMillis() - t);
|
||||
return response;
|
||||
} catch (SolrServerException e) {
|
||||
throw new IOException(e);
|
||||
} catch (Throwable e) {
|
||||
throw new IOException("Error executing query", e);
|
||||
}
|
||||
}
|
||||
|
||||
abstract public QueryResponse query(SolrParams params) throws IOException;
|
||||
|
||||
private final char[] queryIDTemplate = "id:\" \"".toCharArray();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user