@Override public void addData(Metadata metadata) { if (updateUrl == null) { return; } try { StringBuffer param = new StringBuffer(); param.append("<add>"); param.append("<doc>"); param.append("<field name=\"id\">SOLRID"); param.append(solrId.incrementAndGet()); param.append("</field>"); String[] metadataNames = metadata.names(); for (String name : metadataNames) { String data = metadata.get(name); param.append("<field name=\""); param.append(name); param.append("\">"); param.append("<![CDATA["); param.append(filterNotCorrectCharacters(data)); param.append("]]></field>"); } param.append("</doc></add>"); sendPostCommand(updateUrl, param.toString()); sendPostCommand(updateUrl, "<commit/>"); } catch (SolrException e) { e.printStackTrace(); } }
public void assertQEx(String message, SolrQueryRequest req, SolrException.ErrorCode code) { try { h.query(req); fail(message); } catch (SolrException e) { assertEquals(code.code, e.code()); } catch (Exception e2) { throw new RuntimeException("Exception during query", e2); } }
@Override public void init() { try { String endpoint = getSolrEndpoint(); if (supportMultipleProjects) { String projectCode = Project.getProject().getProjectCode(); String command = endpoint + "solr/admin/cores?action=CREATE&name=" + SOLR_INSTANCE_DIR + "_" + projectCode + "&instanceDir=" + SOLR_INSTANCE_DIR + "&config=solrconfig.xml&dataDir=data_" + projectCode + "&schema=schema.xml"; sendGetCommand(command); this.updateUrl = endpoint + "solr/" + SOLR_INSTANCE_DIR + "_" + projectCode + "/update"; } else { sendGetCommand(endpoint + "solr/admin/ping"); this.updateUrl = endpoint + "solr/update"; } String deleteAll = "<delete><query>id:[*TO *]</query></delete>"; sendPostCommand(updateUrl, deleteAll); sendPostCommand(updateUrl, "<commit/>"); } catch (SolrException se) { History.appendToHistory("Problem with SOLR init: " + se.getMessage()); // se.printStackTrace(); } }