List of usage examples for org.apache.solr.core SolrCore getRequestHandler
public SolrRequestHandler getRequestHandler(String handlerName)
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;/*from w ww.j a v a 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.SolrInformationServer.java
License:Open Source License
public SolrInformationServer(AlfrescoCoreAdminHandler adminHandler, SolrCore core, SOLRAPIClient repositoryClient, SolrContentStore solrContentStore) { this.adminHandler = adminHandler; this.core = core; this.nativeRequestHandler = core.getRequestHandler(REQUEST_HANDLER_NATIVE); this.cloud = new Cloud(); this.repositoryClient = repositoryClient; this.solrContentStore = solrContentStore; Properties p = core.getResourceLoader().getCoreProperties(); alfrescoVersion = p.getProperty("alfresco.version", "Unknown"); transformContent = Boolean.parseBoolean(p.getProperty("alfresco.index.transformContent", "true")); recordUnindexedNodes = Boolean.parseBoolean(p.getProperty("alfresco.recordUnindexedNodes", "true")); lag = Integer.parseInt(p.getProperty("alfresco.lag", "1000")); holeRetention = Integer.parseInt(p.getProperty("alfresco.hole.retention", "3600000")); minHash = Boolean.parseBoolean(p.getProperty("alfresco.fingerprint", "true")); dataModel = AlfrescoSolrDataModel.getInstance(); contentStreamLimit = Integer.parseInt(p.getProperty("alfresco.contentStreamLimit", "10000000")); // build base URL - host and port have to come from configuration. props = AlfrescoSolrDataModel.getCommonConfig(); hostName = ConfigUtil.locateProperty(SOLR_HOST, props.getProperty(SOLR_HOST)); port = portNumber(props);/*from ww w . jav a 2s. c o m*/ baseUrl = baseUrl(props); }
From source file:org.alfresco.solr.SolrInformationServer.java
License:Open Source License
SolrDocument getState(SolrCore core, SolrQueryRequest request, String id) { ModifiableSolrParams newParams = new ModifiableSolrParams(request.getParams()).set(CommonParams.ID, id); request.setParams(newParams);//www . j a v a 2 s . c om SolrQueryResponse response = newSolrQueryResponse(); core.getRequestHandler(REQUEST_HANDLER_GET).handleRequest(request, response); NamedList values = response.getValues(); return (SolrDocument) values.get(RESPONSE_DEFAULT_ID); }
From source file:org.opencms.search.solr.CmsSolrIndex.java
License:Open Source License
/** * @see org.opencms.search.CmsSearchIndex#createIndexBackup() *///from ww w.j a v a2 s.c om @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.restlet.ext.lucene.SolrClientHelper.java
License:Open Source License
@Override public void handle(Request request, Response response) { super.handle(request, response); Reference resRef = request.getResourceRef(); String path = resRef.getPath(); if (path != null) { path = resRef.getPath(true);/*from w w w . j av a 2 s.com*/ } String coreName = request.getResourceRef().getHostDomain(); if (coreName == null || "".equals(coreName)) { coreName = getContext().getParameters().getFirstValue("DefaultCore"); } SolrCore core = coreContainer.getCore(coreName); if (core == null) { response.setStatus(Status.SERVER_ERROR_INTERNAL, "No such core: " + coreName); return; } // Extract the handler from the path or params SolrRequestHandler handler = core.getRequestHandler(path); if (handler == null) { if ("/select".equals(path) || "/select/".equalsIgnoreCase(path)) { String qt = request.getResourceRef().getQueryAsForm().getFirstValue(CommonParams.QT); handler = core.getRequestHandler(qt); if (handler == null) { response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST, "unknown handler: " + qt); return; } } // Perhaps the path is to manage the cores if (handler == null && coreContainer != null && path.equals(coreContainer.getAdminPath())) { handler = coreContainer.getMultiCoreHandler(); } } if (handler == null) { core.close(); response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST, "unknown handler: " + path); return; } try { SolrQueryRequest solrReq = new SolrRestletQueryRequest(request, core); SolrQueryResponse solrResp = new SolrQueryResponse(); core.execute(handler, solrReq, solrResp); if (solrResp.getException() != null) { response.setStatus(Status.SERVER_ERROR_INTERNAL, solrResp.getException()); } else { response.setEntity(new SolrRepresentation(MediaType.APPLICATION_XML, solrReq, solrResp)); response.setStatus(Status.SUCCESS_OK); } } catch (Exception e) { getLogger().log(Level.WARNING, "Unable to evaluate " + resRef.toString(), e); response.setStatus(Status.SERVER_ERROR_INTERNAL, e); } finally { core.close(); } }
From source file:org.restlet.ext.solr.SolrClientHelper.java
License:LGPL
@Override public void handle(Request request, Response response) { super.handle(request, response); Reference resRef = request.getResourceRef(); String path = resRef.getPath(); if (path != null) { path = resRef.getPath(true);/* ww w .j a v a 2 s . c o m*/ } String coreName = request.getResourceRef().getHostDomain(); if (coreName == null || "".equals(coreName)) { coreName = getContext().getParameters().getFirstValue("DefaultCore"); } SolrCore core = coreContainer.getCore(coreName); if (core == null) { response.setStatus(Status.SERVER_ERROR_INTERNAL, "No such core: " + coreName); return; } // Extract the handler from the path or params SolrRequestHandler handler = core.getRequestHandler(path); if (handler == null) { if ("/select".equals(path) || "/select/".equalsIgnoreCase(path)) { String qt = request.getResourceRef().getQueryAsForm().getFirstValue(CommonParams.QT); handler = core.getRequestHandler(qt); if (handler == null) { response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST, "unknown handler: " + qt); return; } } // Perhaps the path is to manage the cores if (handler == null && coreContainer != null && path.equals(coreContainer.getAdminPath())) { handler = coreContainer.getMultiCoreHandler(); } } if (handler == null) { core.close(); response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST, "unknown handler: " + path); return; } try { SolrQueryRequest solrReq = new SolrRestletQueryRequest(request, core); SolrQueryResponse solrResp = new SolrQueryResponse(); core.execute(handler, solrReq, solrResp); if (solrResp.getException() != null) { response.setStatus(Status.SERVER_ERROR_INTERNAL, solrResp.getException()); } else { response.setEntity(new SolrRepresentation(solrReq, solrResp, core)); response.setStatus(Status.SUCCESS_OK); } } catch (Exception e) { getLogger().log(Level.WARNING, "Unable to evaluate " + resRef.toString(), e); response.setStatus(Status.SERVER_ERROR_INTERNAL, e); } finally { core.close(); } }
From source file:org.tallison.solr.search.concordance.SolrConcordanceBase.java
License:Apache License
protected static <T extends RequestHandlerBase> String getHandlerName(SolrCore core, String defaultName, Class<T> clz) {//w w w . j a v a 2s .co m //I'd be just as happy stripping this off the url if I could figure out how... SolrRequestHandler handler = core.getRequestHandler(defaultName); if (handler == null) { for (Entry<String, ? extends RequestHandlerBase> kv : core.getRequestHandlers(clz).entrySet()) return kv.getKey(); } else return defaultName; return null; }