List of usage examples for org.apache.solr.request SolrRequestHandler handleRequest
public void handleRequest(SolrQueryRequest req, SolrQueryResponse rsp);
From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java
License:Open Source License
@SuppressWarnings({ "unchecked", "rawtypes" })
private void testQueryByHandler(NamedList report, SolrCore core, String handler, String query, int count,
String sort, Integer[] sorted, Locale locale, Integer rows, Integer start, ContentStream stream,
String... filters) throws IOException {
// TODO: report to rsp
SolrServletRequest solrReq = null;/*ww w . ja va 2 s . c o m*/
try {
NamedList<Object> queryReport = new SimpleOrderedMap<Object>();
report.add(GUID.generate(), queryReport);
queryReport.add("Query", query);
boolean passed = true;
boolean ordered = true;
solrReq = new SolrServletRequest(core, null);
SolrQueryResponse solrRsp = new SolrQueryResponse();
SolrRequestHandler afts = core.getRequestHandler(handler);
ModifiableSolrParams newParams = new ModifiableSolrParams(solrReq.getParams());
newParams.set("alfresco.getSolrDocumentList", true);
//newParams.set("defType", handler.substring("/".length()));
newParams.set("q", query);
newParams.set("fl", "score,DEBID");
if (rows != null) {
newParams.set("rows", "" + rows);
queryReport.add("Rows", rows);
} else {
newParams.set("rows", "" + Integer.MAX_VALUE);
}
if (start != null) {
newParams.set("start", "" + start);
queryReport.add("Start", start);
}
if (sort != null) {
newParams.set("sort", sort);
queryReport.add("Sort", sort);
}
if (locale != null) {
newParams.set("locale", locale.toString());
queryReport.add("Locale", locale.toString());
}
if (filters != null) {
for (String filter : filters) {
if (filter != null) {
newParams.add("fq", filter);
}
}
queryReport.add("Filters", filters);
}
solrReq.setParams(newParams);
if (stream != null) {
ArrayList<ContentStream> streams = new ArrayList<ContentStream>();
streams.add(stream);
solrReq.setContentStreams(streams);
String streamStr = null;
try (Reader reader = stream.getReader()) {
streamStr = IOUtils.toString(reader);
}
queryReport.add("Stream", streamStr);
}
afts.handleRequest(solrReq, solrRsp);
SolrDocumentList ds = (SolrDocumentList) solrRsp.getValues().get("responseSolrDocumentList");
if (ds != null) {
if (ds.size() != count) {
passed = false;
ordered = false;
queryReport.add("Expected", count);
queryReport.add("Found", ds.size());
} else {
queryReport.add("Found", ds.size());
}
if (sorted != null) {
int sz = sorted.length;
int[] dbids = new int[sz];
SolrIndexSearcher searcher = solrReq.getSearcher();
Iterator<SolrDocument> iterator = ds.iterator();
for (int i = 0; i < sz; i++) {
SolrDocument doc = iterator.next();
dbids[i] = Integer.valueOf(((IndexableField) doc.getFirstValue("DBID")).stringValue());
if (ordered) {
if ((sorted[i] != null) && (dbids[i] != sorted[i].intValue())) {
ordered = false;
queryReport.add("Sort at " + i + " expected", sorted[i]);
queryReport.add("Sort at " + i + " found", dbids[i]);
}
}
}
if (ordered) {
queryReport.add("Order", "Passed");
} else {
queryReport.add("Order", "FAILED");
StringBuilder builder = new StringBuilder();
for (int i = 0; i < dbids.length; i++) {
if (builder.length() > 0) {
builder.append(", ");
}
builder.append(dbids[i]);
}
queryReport.add("Sorted as ", builder.toString());
}
} else {
}
if (passed) {
queryReport.add("Count", "Passed");
} else {
queryReport.add("Count", "FAILED");
}
} else {
queryReport.add("Test", "ERROR");
}
} finally {
if (solrReq != null) {
solrReq.close();
}
}
}
From source file:org.alfresco.solr.Cloud.java
License:Open Source License
/** * @param requestHandler the handler that handles the request * @param request the request object to put the params on * @param params Solr parameters// w w w. j av a 2s . c om * @return the response */ SolrQueryResponse getResponse(SolrRequestHandler requestHandler, SolrQueryRequest request, SolrParams params) { request.setParams(params); log.info("Running query " + params.get("q")); SolrQueryResponse solrRsp = new SolrQueryResponse(); requestHandler.handleRequest(request, solrRsp); return solrRsp; }
From source file:org.alfresco.solr.SolrInformationServer.java
License:Open Source License
private SolrDocumentList executeQueryRequest(SolrQueryRequest request, SolrQueryResponse response, SolrRequestHandler handler) { handler.handleRequest(request, response); NamedList values = response.getValues(); return (SolrDocumentList) values.get(RESPONSE_DEFAULT_IDS); }
From source file:org.opencms.search.solr.CmsSolrIndex.java
License:Open Source License
/** * @see org.opencms.search.CmsSearchIndex#createIndexBackup() *///w w w . j av a 2 s . c o m @Override protected String createIndexBackup() { if (!isBackupReindexing()) { // if no backup is generated we don't need to do anything return null; } if (m_solr instanceof EmbeddedSolrServer) { EmbeddedSolrServer ser = (EmbeddedSolrServer) m_solr; CoreContainer con = ser.getCoreContainer(); SolrCore core = con.getCore(getCoreName()); if (core != null) { try { SolrRequestHandler h = core.getRequestHandler("/replication"); if (h instanceof ReplicationHandler) { h.handleRequest( new LocalSolrQueryRequest(core, CmsRequestUtil.createParameterMap("?command=backup")), new SolrQueryResponse()); } } finally { core.close(); } } } return null; }
From source file:org.solbase.SolbaseDispatchFilter.java
License:Apache License
@SuppressWarnings({ "unused", "unchecked" })
private void handleAdminRequest(HttpServletRequest req, ServletResponse response, SolrRequestHandler handler,
SolrQueryRequest solrReq) throws IOException {
SolrQueryResponse solrResp = new SolrQueryResponse();
final NamedList<Object> responseHeader = new SimpleOrderedMap<Object>();
solrResp.add("responseHeader", responseHeader);
NamedList<Object> toLog = solrResp.getToLog();
toLog.add("webapp", req.getContextPath());
toLog.add("path", solrReq.getContext().get("path"));
toLog.add("params", "{" + solrReq.getParamString() + "}");
handler.handleRequest(solrReq, solrResp);
SolrCore.setResponseHeaderValues(handler, solrReq, solrResp);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < toLog.size(); i++) {
String name = toLog.getName(i);
Object val = toLog.getVal(i);
sb.append(name).append("=").append(val).append(" ");
}//from w w w. jav a2 s .c o m
QueryResponseWriter respWriter = SolrCore.DEFAULT_RESPONSE_WRITERS
.get(solrReq.getParams().get(CommonParams.WT));
if (respWriter == null)
respWriter = SolrCore.DEFAULT_RESPONSE_WRITERS.get("standard");
writeResponse(solrResp, response, respWriter, solrReq, Method.getMethod(req.getMethod()));
}
From source file:org.vootoo.server.RequestProcesser.java
License:Apache License
protected void handleAdminRequest(SolrRequestHandler handler, SolrQueryRequest solrReq) throws IOException { SolrQueryResponse solrResp = new SolrQueryResponse(); SolrCore.preDecorateResponse(solrReq, solrResp); handler.handleRequest(solrReq, solrResp); SolrCore.postDecorateResponse(handler, solrReq, solrResp); if (logger.isInfoEnabled() && solrResp.getToLog().size() > 0) { logger.info(solrResp.getToLogAsString("[admin] ")); }//from w ww. j ava 2 s .c o m QueryResponseWriter respWriter = SolrCore.DEFAULT_RESPONSE_WRITERS .get(solrReq.getParams().get(CommonParams.WT)); if (respWriter == null) respWriter = SolrCore.DEFAULT_RESPONSE_WRITERS.get("standard"); writeResponse(solrResp, respWriter, solrReq); }
From source file:org.xwiki.platform.search.internal.VelocityUtils.java
License:Open Source License
/** * @param key statistics key./*w w w . ja va 2 s. c om*/ * @return {@link NamedList} Map of Indexing statistics. */ private NamedList getStatistics(String key) { Map<String, SolrInfoMBean> reg = this.core.getInfoRegistry(); LocalSolrQueryRequest req = new LocalSolrQueryRequest(core, new ModifiableSolrParams()); SolrQueryResponse response = new SolrQueryResponse(); if (key.startsWith("/admin") && !key.equals("/admin/")) { SolrRequestHandler base = (SolrRequestHandler) reg.get(key); base.handleRequest(req, response); return response.getValues(); } return null; }